5

クライアントの Elastic Search を評価しています。API をいじり始め、インデックスを作成し、ドキュメントを検索に追加することに成功しました。Elastic Search を使用する主な理由は、ファセット機能を提供することです。

アナライザー、トークナイザー、フィルター、およびそれらがどのようにファセットに適合するかを理解するのに苦労しています。キーワード、日付、検索語などをファセットとして使用できるようにしたいと考えています。

アナライザーを検索に組み込む方法と、それをファセットで使用するにはどうすればよいですか?

4

1 に答える 1

9

Elastic Search がデフォルトで文字列にインデックスを付ける場合、通常、文字列はトークンに分割されます。たとえば、「Fox jump over the wall」は、「Fox」、「jump」、「over」、「the」などの個々の単語にトークン化されます。 "壁"。

それで、これは何をしますか?Lucene クエリを使用してドキュメントを検索する場合、Elastic Search は文字列全体ではなく、トークン化された単語を自動的に検索するため、目的の文字列が得られない可能性があり、検索結果に深刻な影響を与えます。

たとえば、「フォックス ジャンプ オーバー ザ ウォール」を検索しても、結果は得られません。代わりに「キツネ」を検索すると、結果が得られます。

Analyze APIまたは Analyze タームは、インデックス付き文字列をトークン化しないようにElastic Searchに指示します。これにより、正確な文字列を適切に検索できるようになります。これは、文字列全体に対して統計的ファセットを実行する場合に特に役立ちます。

トークナイザーは、文字列を個々の単語にトークン化し、Elastic Search に保存します。前述のように、これらのトークンは Search API を使用して照会できます。

フィルターは、指定した特定の条件下でクエリ結果のサブセットを作成するため、検索結果で必要なものと不要なものを区別するのに役立ちます。

于 2012-06-08T07:16:03.537 に答える