Elasticsearch:无法在多个字段上进行过滤
我想{ "query" : { "match_all" :{}}}
对elasticsearch 进行过滤,但我不知道…
这是我发送给ES _search方法的内容。
curl -XGET http://localhost:9200/users/location/_search '-H Accept: application/json' '-H Content-Type: application/json'-d '{
"query":{
"match_all":{}
},
"filter":{
"and":{
"geo_distance":{
"distance":"500km",
"location":{
"lat":48.8,
"lon":2.33
}
},
"term":{
"status":1
}
}
},
"sort":[
{
"_geo_distance":{
"location":[
2.33,
48.8
],
"order":"asc",
"unit":"km"
}
}
]
}'
但是我总是会收到这个错误:
nested: QueryParsingException[[users] [and] filter does not support [distance]]
而且,如果我删除该"and" :{}
选项并仅对geo_distance进行过滤,则可以使用…任何帮助都将是极好的。
干杯
回答:
我认为您的and
过滤器写有误。该错误表明and
过滤器或多或少地在参数方面遇到问题。参见http://www.elasticsearch.org/guide/reference/query-
dsl/and-filter/
尝试以下方法:
{ "query":{
"match_all":{}
},
"filter":{
"and": [
{
"geo_distance": {
"distance":"500km",
"location":{
"lat":48.8,
"lon":2.33
}
}
}, {
"term": {
"status":1
}
}]
}
},
"sort":[
{
"_geo_distance":{
"location":[
2.33,
48.8
],
"order":"asc",
"unit":"km"
}
}
]
}
以上是 Elasticsearch:无法在多个字段上进行过滤 的全部内容, 来源链接: utcz.com/qa/405135.html