Wi sh для поиска ближайшего человека из введенного местоположения geo_point.
Шаги: 1: Добавьте документы с именем человека и его данными о широте и долготе
Ожидаемый результат Тело запроса должно содержать geo_point (широта / долгота пользователя) и должны искать документы Ближайший к диапазону (радиус), например, 1: Искать человека, добавленного в # 1, начиная с 20 миль, если он найден, вернуть соответствующие документы 2: увеличить смещение на 5 миль ie. ищите человека в радиусе 25 миль 3: повторяйте # 2, пока не дойдете до макс. 50 миль, чтобы найти человека
Добавьте некоторые образцы данных, как показано ниже
PUT http://localhost:9200/person_locations/person/1
{
"name": "personA",
"location": {
"lat": 28.610001,
"lon": 77.230003
}
}
PUT http://localhost:9200/person_locations/person/2
{
"name": "personB",
"location" : {
"lat" : 28.610002,
"lon" : 77.230005
}
}
Я возможность поиска местоположения, указав диапазон расстояний, например, 80 миль от данного местоположения. Но если в пределах диапазона не найдено людей, поиск Elasti c должен найти записи, увеличивая диапазон, например, на 10 миль (смещение), поэтому поиск Elasti c должен находиться в пределах 90 диапазон миль, и, если он все еще не найден, должен вернуть пустой набор результатов
GET http://localhost:9200/location_range_search1/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_distance": {
"distance": "80mi",
"location": {
"lat" : 28.11,
"lon" : 77.11
}
}
}
}
}
}