Elasticsearch версия: 6.5.0
У меня есть вопрос по поиску точки geo_shape, это выглядит просто, но я не понимаю почему .. Я был бы признателен за любые идеи ..
Мое отображение схемы индекса:
{
"fullname": {
"type": "text"
},
"location": {
"type": "geo_shape"
}
}
Я создаю это do c, которое содержит три круга по 5 км. (Аргентина, Индия и Лондон)
PUT /location_test/region/doc123456
{
"fullname": "Argentina, India and London",
"location": {
"geometries": [
{
"coordinates": [
-58.4358666,
-34.5884887
],
"type": "circle",
"radius": "5.0km"
},
{
"coordinates": [
72.8457919,
19.1045692
],
"type": "circle",
"radius": "5.0km"
},
{
"coordinates": [
-0.1436263,
51.5412567
],
"type": "circle",
"radius": "5.0km"
}
],
"type": "geometrycollection"
}
}
Когда я выполняю поиск, для точки в Саутгемптоне (широта = 50,909594, длинная = -1,404098) используется следующий запрос:
GET location_test/_search
{
"query": {
"geo_shape": {
"location": {
"shape": {
"type": "point",
"coordinates": [
-1.404098,
50.909594
]
}
}
}
}
}
Но я получил документ doc123456, который не имеет смысла, поскольку Аргентина, Индия и Лондон находятся далеко от Саутгемптона. Он не должен совпадать с запросом и не должен возвращать никакого результата.
Интересно то, что я обновил вышеупомянутый do c, (удалил один из кругов, Аргентина), Теперь do c содержит только круги Индии и Лондона.
Выполнил один и тот же запрос, я не получил правильный результат.
Почему у do c, содержащего эти три круга, есть неправильный результат?
Правильно ли я использую правильное отображение и тип поля "geometrycollection" правильно?
Любые предложения приветствуются.
Большое спасибо.