我试图形成一个查询,如果缺少区域字段或区域具有值ASIA,请列出所有文档。但如果我运行查询,其响应为空列表。我们如何形成这样的查询?
{
"query": {
"bool": {
"must": {
"match": {
"region": "ASIA"
}
},
"must_not": {
"exists": {
"field": "region"
}
}
}
}
}
最佳答案
在这种情况下,您需要should
bool(boolean) ->应该-> condition1,condition2
应该= OR,因此下面将匹配满足条件1或条件2的文档
{
"query": {
"bool": {
"should": [
{
"terms": {
"region": [
"asia"
]
}
},
{
"bool": {
"must_not": [
{
"exists": {
"field": "region"
}
}
]
}
}
]
}
}
}
关于elasticsearch - Elasticsearch查询以查找缺少字段或具有某些值的文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58193250/