我正在为搜索构建查询,但却一直在寻找一个字段(位置)的多个值。这样,它可以不止一个城市。 我的查询如下:
{
"query" : {
"filtered" : {
"filter" : {
"terms" : {
"location" : [Baku, Paris, London]
},
"bool" : {
"must" : ...
}
}
}
}
}
结果为400:SearchPhaseExecutionException ... QueryParsingException
可能是什么原因?
我使用的条款文档:https://www.elastic.co/guide/en/elasticsearch/guide/current/_finding_multiple_exact_values.html
答案 0 :(得分:1)
您的terms
过滤器必须位于bool/must
子句中,如下所示。并且不要忘记用双引号括起你的城市名字。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"terms": {
"location": [ "Baku", "Paris", "London" ]
}
},
...
]
}
}
}
}
}