Как я могу искать по нескольким запросам geo_distance - PullRequest
1 голос
/ 29 сентября 2019

Я хочу искать в нескольких местах с помощью запроса geo_distance (с использованием ES 7.3).Например:

Поиск в Берлине + 10км

Поиск в Мюнхене + 10км

И дать мне комбинированный результат.

В основном я пробовал это здесь:

Массив на geo_distance не работает.Хотел бы получить помощь по этому вопросу:)

1 Ответ

0 голосов
/ 30 сентября 2019

Простой пример поиска по нескольким местоположениям. Сопоставление:

PUT location
{
    "mappings": {
        "properties" : {
            "pin" : {
                "type" : "geo_point"
            }
        }
    }
}

Данные:

[
      {
        "_index" : "location",
        "_type" : "_doc",
        "_id" : "rhn8f20BIb7c4jbYhr3Z",
        "_score" : 1.0,
        "_source" : {
          "pin" : {
            "lat" : 40.73,
            "lon" : -74.1
          }
        }
      },
      {
        "_index" : "location",
        "_type" : "_doc",
        "_id" : "rxn8f20BIb7c4jbYz709",
        "_score" : 1.0,
        "_source" : {
          "pin" : {
            "lat" : 40.717,
            "lon" : -73.99
          }
        }
      }
    ]

Запрос:

GET location/_search
{
  "query": {
    "bool": {
      "should": [    ---> multiple filters in should clause , either one of these has to be true
        {
          "geo_distance" : {
                "distance" : "1km",
                "pin" : {
                    "lat" : 40.73,
                    "lon" : -74.1
                }
            }
        },
        {
          "geo_distance" : {
                "distance" : "1km",
                "pin" : {
                    "lat" : 40.717,
                    "lon" : -73.99
                }
            }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...