Как добавить геоданные в запрос эластичного поиска (эластичный поиск 6.4)? - PullRequest
0 голосов
/ 20 октября 2018

Пожалуйста, помогите новичку!

У меня есть существующий индексasticsearch (он автоматически генерируется из плагина, который заполняет индекс из базы данных), и я пытаюсь визуализировать некоторые поля географически (используя карту координат Kibana).Индекс не имеет данных о геолокации как таковых.У него есть поле с именем "alloc_node", и я знаю, что в наборе данных есть только несколько из "alloc_node", и у меня есть их географические координаты.

Данные из индекса выглядят следующим образом (из вкладки обнаружения Кибаны, усечено):

t  _id          MV0JkWYBmQ9JhdzgNzwI
t  _index           slurm
#  _score            - 
t  _type            jobcomp
t  alloc_node           mace

например, я знаю, что "булава" находится в Нью-Йорке, широта = 40.73, lon = -73,94.У меня есть только 5 таких записей, где я должен сопоставить узел с гео.

Нужно ли обновлять индекс, чтобы визуализировать это, или можно добавить дополнительные поля с помощью запроса?Как?Что будет наиболее эффективным?Индекс пока не велик (но в производстве может быть).

Я пытался читать документы, но меня смущает то, что типы карт в ES 6.x устарели, а глупые вещи, которые я пробовал, не работали.Я чувствую, что это должно быть настолько легко, чтобы ответить для кого-то с большим опытом.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 31 октября 2018

Чтобы визуализировать это в Kibana, вы должны иметь тип geo_point в вашем отображении.Простой способ создать такое поле в отображении:

PUT /slurm
{
  "mappings": {
    "default": {
      "properties": {
        "your_geo_location_field": {
          "type": "geo_point"
        }
      }
    }
  }
}

Затем, когда вы помещаете (индексируете) документ в индекс, поле your_geo_location_field должно иметь значения "lat" и "lon"."float fields, или массив, содержащий два поля. Например, это допустимый объект:

{ 
  "geolocation": {
    "lat": "40.71476752",
    "lon": "-74.01280024"
  }
}

Где" геолокация "является примером такого поля.

Что бы вынужно создать еще один индекс с указанным выше отображением, переиндексировать текущий индекс во вновь созданный (со всеми документами, содержащими допустимые объекты), а затем Kibana предложит вам визуализацию поверх этого поля.

...