技術共有

【Elasticsearch】Elasticsearch転置インデックスの詳細説明

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

📑引言

Elasticsearch は、全文検索、ログ分析、リアルタイムデータ分析などの分野で広く使用されている Lucene をベースとした分散検索エンジンです。その中心的な利点は強力な検索パフォーマンスにあり、このパフォーマンスの基盤の 1 つは転置インデックスです。この記事では、読者がその原理、構造、アプリケーションを深く理解できるように、Elasticsearch の転置インデックスを詳細に紹介します。

画像.png

1. 転置インデックスの概要

転置インデックスは、全文検索エンジンの中核となるデータ構造であり、その主な機能は、ドキュメントからキーワードを抽出し、キーワードとドキュメント間のマッピング関係を確立することです。この構造は、従来の順方向インデックス (つまり、ドキュメントとキーワードのマッピング) の逆であるため、転置インデックスと呼ばれます。
転置インデックスでは、各キーワードがそのキーワードを含むドキュメントのリストに関連付けられているため、検索操作で特定のキーワードを含むドキュメントを迅速に見つけることができ、クエリ効率が大幅に向上します。

2. 転置インデックスの基本構造

転置インデックスの基本構造には次の部分が含まれます。

  1. 辞書: ドキュメント セットに出現するすべてのキーワードが含まれます。
  2. 反転リスト: キーワードごとに、そのキーワードを含む文書 ID リストと文書内の位置情報を記録します。

簡単な例を挙げてみましょう。
次の 3 つのドキュメントがあるとします。

  • 資料1:"Elasticsearch is a powerful search engine"
  • 資料2:"Elasticsearch uses inverted index"
  • 資料3:"Search engines use indexes"

転置インデックスを構築する手順は次のとおりです。

  1. トークン化: ドキュメントを単語に分割し、正規化処理 (小文字への変換、ストップ ワードの削除など) を実行します。
  2. 辞書を構築する: すべての文書から一意の単語を抽出します。
  3. 逆リストを作成します。各文書内の各単語がどこに出現するかを記録します。

結果は次のとおりです。