Я использую Geo Distance Filter с ElasticSearch и независимо от того, какое расстояние я ищу, elasticsearch 0.90.11 возвращает нулевые результаты.Geo Фильтр расстояний с ElasticSearch всегда возвращает 0 результатов
Вот что я сделал: Во-первых, удалить/создать новый индекс с отображением гео:
curl -XDELETE 'http://localhost:9200/photos'
curl -XPOST 'http://localhost:9200/photos' -d '
{
"mappings": {
"pin" : {
"properties" : {
"location" : {
"type" : "geo_point"
}
}
}
}
}
'
Затем добавьте документ:
curl -XPOST 'http://localhost:9200/photos/photo?pretty=1' -d '
{
"pin" : {
"location" : {
"lat" : 46.8,
"lon" : -71.2
}
},
"file" : "IMG_2115.JPG"
}
'
Тогда поиск:
curl -XGET 'http://localhost:9200/photos/_search?pretty=1&size=20' -d '
{
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "10km",
"pin.location" : {
"lat" : "46.8",
"lon" : "-71.2"
}
}
}
}
'
Но поиск дает нулевые образы:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
Кто-нибудь знает, почему он не нашел документ в радиусе? В качестве интересной заметки, «отфильтрованный» синтаксис, имеющий как «запрос», так и «фильтр» в качестве подполей, как описано в документе, упомянутом выше, кажется, больше не работает вообще, кажется, что теперь «запрос» и «фильтр» должны быть на верхнем уровне json-запроса.
Любая помощь приветствуется ...
+1 спасибо! Я пытался понять это в течение 2 дней. –
Я отправил запрос [pull request] (https://github.com/elastic/elasticsearch/pull/15745), чтобы обновить вводящие в заблуждение документы. – Jonny