ネストされたクエリは、ネストされたフィールドにアクセスするための単なる構文であるため、他のクエリと同様に minimum_should_match を使用できます
クエリ
{
"query": {
"nested": {
"path": "tags",
"query": {
"match": {
"tags.tag":
{
"query": "lorem ipsum dolor",
"minimum_should_match": "90%"
}
}
},
"inner_hits": {}
}
}
}
結果:
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.671082,
"hits" : [
{
"_index" : "index56",
"_type" : "_doc",
"_id" : "01We63ABq1Ib1oOmkJxn",
"_score" : 0.671082,
"_source" : {
"tags" : [
{
"tag" : "lorem ipsum"
},
{
"tag" : "Lorem ipsum dolor sit amet"
}
]
},
"inner_hits" : {
"tags" : {
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 0.89999837,
"hits" : [
{
"_index" : "index56",
"_type" : "_doc",
"_id" : "01We63ABq1Ib1oOmkJxn",
"_nested" : {
"field" : "tags",
"offset" : 1
},
"_score" : 0.89999837,
"_source" : {
"tag" : "Lorem ipsum dolor sit amet"
}
},
{
"_index" : "index56",
"_type" : "_doc",
"_id" : "01We63ABq1Ib1oOmkJxn",
"_nested" : {
"field" : "tags",
"offset" : 0
},
"_score" : 0.44216567,
"_source" : {
"tag" : "lorem ipsum"
}
}
]
}
}
}
}
]
}
minimum-should-match:90% を使用すると、ネストされた両方のドキュメントが inner_hits に返されます。
理由:ドキュメントから
パーセンテージから計算された数値は切り捨てられ、最小値として使用されます。
22.7 の 90% であるため、2 に切り捨てられます。したがって、2 つのトークンが一致する必要があります。minimum-should-match:100% の場合、ネストされたドキュメントが 1 つだけ返されます