ネストされたオブジェクトが文字列値のみを持つ場合、ネストされたオブジェクトに対して match_phrase クエリを実行しています。
文字列フレーズの出現を見つけることを意図していました。
仮定しましょう、
1) マッピングは次のとおりです。
"attr": {
"type": "nested",
"properties": {
"attr": {
"type": "multi_field",
"fields": {
"attr": { "type": "string", "index": "analyzed", "include_in_all": true, "analyzer": "keyword" },
"untouched": { "type": "string", "index": "analyzed", "include_in_all": false, "analyzer": "not_analyzed" }
}
}
}
}
2)データは似ています。
オブジェクト A:
"attr": [
{
"attr": "beverage"
},
{
"attr": "apple wine"
}
]
オブジェクト B:
"attr": [
{
"attr": "beverage"
},
{
"attr": "apple"
},
{
"attr": "wine"
}
]
3)したがって、次のようなクエリで
{
"query": {
"match": {
"_all": {
"query": "apple wine",
"type": "phrase"
}
}
}
}
私たちはオブジェクト A だけを期待していますが、残念ながらオブジェクト B も来ています。
ご提案をお待ちしております。