Я хотел бы, чтобы фильтровать { "query" : { "match_all" :{}}}
на elasticsearch, но я не понять это ...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' часть в массив. Что-то вроде этого 'и: [{distance: {...}}, {term: {...}}]' – ramseykhalaf
Зачем вам нужно фильтровать запрос 'match_all'? Все, что он делает, - это вернуть все документы под областью определения индекса пользователя/документа. –