我想使用一个布尔查询,其中一个条件(例如,在应该部分中)是对某事的否定。
具体来说:
1) 字段不存在。例如,我尝试了以下查询:
{"query":{
"bool":{
"must":[
{"match":{"field1":"val1"}},
],
"should":[
{"match":{"field2":"val2"}},
{"filtered" :
{
"query" : {"match_all" : {}},
"filter" : {"missing" : { "field":"field3"}}
}
},
],
"minimum_number_should_match":1
}
}
}
2) 字段没有值。例如:
{"query":{
"bool":{
"must":[
{"match":{"field1":"val1"}},
],
"should":[
{"match":{"field2":"val2"}},
{"filtered" :
{
"query" : {"match_all" : {}},
"filter" : {"not" : { "field3":"val3"}}
}
},
],
"minimum_number_should_match":1
}
}
}
两者都不起作用。我必须应用过滤器或错误地插入内部查询。我怎样才能做到这一点?