У меня есть индекс данных о местонахождении трюмов для магазинов.
При использовании Python elasticsearch_dsl я хотел бы найти ближайшие магазины для данного местоположения, отсортированные по расстоянию. Поскольку ES уже вычисляет расстояние, возможно ли получить его как часть результата поиска?
Можно ли этого добиться с помощью elasticsearch_dsl в одном запросе? Или мне нужно выполнить постобработку местоположения lat, lon и вычислить расстояния вручную?
Спасибо.






Вы можете сортировать по расстоянию, и вы получите вычисленное расстояние в результирующих попаданиях.
Например:
s = Search().sort(
{
"_geo_distance" : {
"location" : {"lat": 40, "lon": -70},
"order" : "asc",
"unit" : "km",
"distance_type" : "arc"
}
}
)
Круто, рад, что помог!
Это решение использует
elasticsearch_dsl