我想编写一个查询,我想检查ES中是否存在给定过滤器的1个或多个字段。我想得到过滤器中存在的1个或多个字段中的哪个字段以及哪些字段不存在。
存在查询可以帮助它吗?目前我所拥有的是 -
{ "query": {
"bool": {
"must": [
{
"match": {
"mykey": "my_val02"
}
},
{
"exists": {
"field": "field_key1"
}
}
]
} } }
但这似乎过滤了具有field_key1的文档。
我想要一些我可以决定是否 - field_key1存在于过滤器" mykey:myvalue1" field_key2存在于过滤器" mykey:myvalue1" 过滤器" mykey:myvalue1"
中不存在field_key3关于如何做的任何想法?
答案 0 :(得分:0)
你几乎就在那里,坚持像
这样的must_not子句中的存在查询{
"query":{
"bool":{
"must":[
{
"match":{
"mykey":"my_val02"
}
},
{
"must_not":{
"exists":{
"field":"field_key1"
}
}
}
]
}
}
}
这将返回my_val02和field_key1不存在的所有文档。要添加其他子句,请添加outer should子句并根据需要将内容复制到上面