条件の 1 つ (たとえば、should セクション) が何かの否定である bool クエリを使用したいと思います。
具体的には:
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
}
}
}
どちらも機能しません。フィルターを適用しているか、内部クエリを間違って挿入しているに違いありません。どうすればこれを達成できますか?