Elastic Search がデフォルトで文字列にインデックスを付ける場合、通常、文字列はトークンに分割されます。たとえば、「Fox jump over the wall」は、「Fox」、「jump」、「over」、「the」などの個々の単語にトークン化されます。 "壁"。
それで、これは何をしますか?Lucene クエリを使用してドキュメントを検索する場合、Elastic Search は文字列全体ではなく、トークン化された単語を自動的に検索するため、目的の文字列が得られない可能性があり、検索結果に深刻な影響を与えます。
たとえば、「フォックス ジャンプ オーバー ザ ウォール」を検索しても、結果は得られません。代わりに「キツネ」を検索すると、結果が得られます。
Analyze APIまたは Analyze タームは、インデックス付き文字列をトークン化しないようにElastic Searchに指示します。これにより、正確な文字列を適切に検索できるようになります。これは、文字列全体に対して統計的ファセットを実行する場合に特に役立ちます。
トークナイザーは、文字列を個々の単語にトークン化し、Elastic Search に保存します。前述のように、これらのトークンは Search API を使用して照会できます。
フィルターは、指定した特定の条件下でクエリ結果のサブセットを作成するため、検索結果で必要なものと不要なものを区別するのに役立ちます。