Elasticsearch гео-запросов - PullRequest
       5

Elasticsearch гео-запросов

0 голосов
/ 18 марта 2019

Мы переходим на ES и должны поддерживать разные гео-запросы.Мы используем тип поля geo_point в нашем отображении.Я вижу, что ES поддерживает geo_bounding_box & geo_distance, но я пытаюсь выяснить, могут ли они использоваться для наших случаев использования ниже:

1.BBOX: где поле определяется с использованием центральной точки и радиуса.Насколько я понимаю, geo_distance создаст круглую форму, как мы можем использовать bbox этого круга?

//something like this - but we want a box shape not circle
QueryBuilders.geoDistanceQuery("location")
            .point(lat, lon)
            .distance(r, DistanceUnit.KILOMETERS);

2.LAT_WITHIN: как мы можем проверять документы с широтой, которая находится на расстоянии(север и юг) от центральной широты?

//something like this - but with only lat & radius
QueryBuilders.geoDistanceQuery(pointField)
            .point(lat)   //only lat?
            .distance(r, DistanceUnit.KILOMETERS);

3.LON_WITHIN: аналогично вышеуказанной точке, но для долготы.

4. ТОЧКА ИСПОЛЬЗОВАНИЯ: найти документы с той же широтойЛон.Итак, можем ли мы использовать здесь поле географической точки в запросе термина или можно использовать лат / лон ключи?

//point equal - this gives error
QueryBuilders.termQuery("location", "lat,lon");
//OR - this doesn't return
QueryBuilders.boolQuery()
    .must(QueryBuilders.termQuery("location.lat", lat))
    .must(QueryBuilders.termQuery("location.lon", lon));

использование первого запроса дает ошибку «Поля гео не поддерживают точный поиск, используйтевместо этого выделенные гео-запросы: [местоположение] ".Второй запрос не возвращает результатов.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...