次のテキストのように、elasticsearch でクエリを作成する必要があります。「家族と一緒に休暇でニューヨークに行きたい」検索: ネストされたフィールドの「ニューヨーク」。私のデータには、Nested 型で not_analyzed の「New York」という単語を含むフィールドがあります。誰でもこれを行う方法を知っていますか?
クエリと私はそれを手に入れましたが、誰も助けてくれません。
次のテキストのように、elasticsearch でクエリを作成する必要があります。「家族と一緒に休暇でニューヨークに行きたい」検索: ネストされたフィールドの「ニューヨーク」。私のデータには、Nested 型で not_analyzed の「New York」という単語を含むフィールドがあります。誰でもこれを行う方法を知っていますか?
クエリと私はそれを手に入れましたが、誰も助けてくれません。
フレーズ クエリを使用します。ドキュメントから:
{
"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"}
}
}
not_analyzed
それが言うことを意味します、それは分析されていません。単一のトークンで、渡されたリテラル文字列としてインデックスが作成されます。分析すると、全文検索に役立つようにトークン化およびフィルタリングされます。そうしてください。
ElasticSearch Analysisのドキュメントを参照してください。