asticsearch_dsl поиск по географическому местоположению расстояния и получить результаты и расстояние - PullRequest
0 голосов
/ 02 мая 2018

У меня есть индекс, содержащий данные о местонахождении магазинов.

При использовании Python's elasticsearch_dsl я бы хотел найти ближайшие магазины для данного местоположения, отсортированные по расстоянию. Поскольку ES уже вычисляет расстояние, возможно ли его получить как часть результата поиска?

Может ли это быть достигнуто с помощью elasticsearch_dsl в одном запросе? Или мне нужно выполнить постобработку в местоположении lat, lon и рассчитать расстояния вручную?

Спасибо.

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете отсортировать по расстоянию , и вы получите вычисленное расстояние в результате попадания.

Например:

s = Search().sort(
    {
        "_geo_distance" : {
            "location" : {"lat": 40, "lon": -70},
            "order" : "asc",
            "unit" : "km",
            "distance_type" : "arc"
        }
    }
)
...