エラスティックサ ーチのインデックス構造の仕組み
Elasticsearchのインデックスは、特定の語句を含むドキュメントのリストをすばやく探すためのデータ 構造です。その仕組みは次のとおりです。
- ドキュメント・アナライシス: エラスティックサーチは、ドキュメントをインデックスする前に、ドキュメントを分析します。通常は、トークン化やストップワードの除去などの手順を含みます。これにより、テキストデータを一連の語にトランスフォームできます。
- Elasticsearchは、エントリごとに逆インデックスリストを作成します。このリストには、単語を含んでいるすべてのドキュメントの、ドキュメント ID とドキュメント内の単語の位置などの情報が含まれます。
- 圧縮インバートインデックス:インデックスサイズの縮小のために、Elasticsearchはインバートリストを圧縮します。通常、圧縮辞書、ビットマップ、スキップリストなどの技術が採用されています。
- ドキュメントの取得: 検索時には、Elasticsearchは、検索条件にもとづきインデックスからインバートインデックスを参照し、マッチスコアを計算します。その後、スコアにもとづいて検索条件にマッチするドキュメントのリストを返します。
インデックスの利点は特定の単語を含むドキュメントを素早く特定でき、すべてのドキュメントを検索する手間を省けることだ。加えて、インデックスは、論理演算子、ワイルドカード、あいまい検索などの複雑な検索操作もサポートしている。これが、Elasticsearchが強力な検索エンジンであり、分散ドキュメントストレージシステムである理由でもある。