在Elasticsearch 6.0+中,我想通过将结果限制为一个关键字字段来过滤结果,从而强制将该字段包含在一组关键字中。
当前,我在此示例中使用bool
:
GET users/_search
{
"query": {
"bool": {
"must": {
"match": {
"user_name": "alice"
}
},
"filter": {
"bool": {
"should": [
{"match": {"country": "italy"}},
{"match": {"country": "france"}}
]
}
}
}
}
}
但是想象一下有50个国家。
有什么方法可以简化这个过程吗?类似于Python的
country in ['italy', 'france']
吗?
最佳答案
详细说明@suparshva的评论,可以将其重写:
GET users/_search
{
"query": {
"bool": {
"must": {
"match": {
"user_name": "alice"
}
},
"filter": {
"terms": {
"country": ["italy", "france"]
}
}
}
}
}
关于elasticsearch - 在一组关键字中过滤关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52490245/