2

エラスティック検索と NEST は初めてです。

C# クライアント - NEST を使用して、大文字と小文字を区別する検索を実行しようとしています。たくさんの投稿を読みましたが、それを理解できませんでした。誰かが詳細なステップバイステップの指示で私たちを喜ばせることができます.

どんな助けでも大歓迎です。

ありがとう、VB。

4

2 に答える 2

6

これは古い質問であることは知っていますが、調査中に出くわしました。だから、これが私の答えです。

まず、TERM クエリに切り替えても効果がありませんでした。ElasticSearch がデフォルトでどのように機能するかについて詳しく学ぶと、その理由が理解できます。

デフォルトでは、ElasticSearch は大文字と小文字を区別しません。ドキュメントがインデックス化されると、既定のアナライザーはすべての文字列値を小文字にし、今後の検索のために小文字の値を保持します。これは、ドキュメント自体に格納されている値には影響しませんが、小文字は検索に影響します。

デフォルトのアナライザーを使用している場合、文字列値の検索用語はすべて小文字にする必要があります。

これがどのように機能するかを知る前に、私はかなりの時間を費やして、インデックス付きドキュメント内の大文字と小文字が混在するフィールド値を調べ、同じ大文字と小文字が混在する値を使用するクエリ用語で検索しました。結果ゼロ。結果を取得し始めたのは、クエリで使用する値をすべて小文字に強制するまではありませんでした。

ElasticSearch アナライザーの詳細については、こちらをご覧ください: ElasticSearch - 分析

于 2014-12-24T16:17:02.740 に答える
0

TERM クエリを試してみてください。TERM クエリに渡された値は分析されないため、ES は入力を小文字にしません。

ここ: http://www.elasticsearch.org/guide/reference/query-dsl/term-query/

于 2013-08-17T18:22:57.723 に答える