0

次のテキストのように、elasticsearch でクエリを作成する必要があります。「家族と一緒に休暇でニューヨークに行きたい」検索: ネストされたフィールドの「ニューヨーク」。私のデータには、Nested 型で not_analyzed の「New York」という単語を含むフィールドがあります。誰でもこれを行う方法を知っていますか?

クエリと私はそれを手に入れましたが、誰も助けてくれません。

4

2 に答える 2

4

フレーズ クエリを使用します。ドキュメントから:

{
   "match_phrase" : {
       "message" : "this is a test"
   }
}

実際に分析されたフィールドが必要なため、「not_analyzed」を使用することは問題になると思います。使用するアナライザーのタイプを指定できます。これは機能する可能性があります。ただし、可能であれば、分析されたフィールドを使用することをお勧めします。

スペース コストを支払う意思がある場合は、分析された部分と分析されていない部分を含むマルチ フィールドを使用することをお勧めします。以下に例を示します。

 "sender": {
            "type" : "multi_field",
            "fields" : {
                "sender" : {"type" : "string", "index" : "analyzed"},
                "sender_not_analyzed" : {"type" : "string", "index" : "not_analyzed"}
            }
        }
于 2013-06-07T18:46:43.243 に答える
0

not_analyzedそれが言うことを意味します、それは分析されていません。単一のトークンで、渡されたリテラル文字列としてインデックスが作成されます。分析すると、全文検索に役立つようにトークン化およびフィルタリングされます。そうしてください。

ElasticSearch Analysisのドキュメントを参照してください。

于 2013-06-07T18:46:58.613 に答える