我有嵌套和非嵌套组件的数据。我无法重新映射数据,它正在生产中。样品是
height
我需要在嵌套值和非嵌套值中进行查询。即,所有未结婚的参赛作品#39;但是他的名字是汤姆'。
为了查询汤姆',我会做
{
"name":[
"first":"Tom",
"last":"Smith"
],
"status":"married"
}
但是如何将其与状态(非嵌套)的must_not查询结合起来
答案 0 :(得分:1)
您需要在must_not
后面添加must
。我在我的环境中对此进行了测试(除了我使用term
而不是match
)并且它过滤了不需要的元素。
GET /_search
{
"query": {
"nested": {
"path": "name",
"query": {
"bool": {
"must": [
{
"match" : {"name.first" : "Tom"}}
],
"must_not": [
{
"match" : {"status" : "married"}}
]
}
}
}
}
}