Cómo añadir datos geográficos a una consulta elasticsearch (Elasticsearch 6.4)?

votos
0

Por favor, ayudar a un novato!

Tengo un índice elasticsearch existente (que se genera automáticamente a partir de un plugin que puebla el índice a partir de una base de datos) y estoy tratando de visualizar algunos campos geográficamente (en el mapa de coordenadas de Kibana). El índice no tiene los datos de geolocalización per se. Cuenta con un campo denominado alloc_node y sé que sólo hay presente puñado de alloc_node s en el conjunto de datos, y tengo sus coordenadas geográficas.

Los datos del índice es el siguiente (de Kibana de pestaña Discover, truncada):

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

por ejemplo, sé que maza se encuentra en Nueva York, lat = 40.73, lon = -73.94. Sólo tengo 5 de tales registros en los que tengo que asignar el nodo para geo.

¿Tengo que actualizar el índice de visualizar esto, o puede añadirse los campos extra a través de una consulta? ¿Cómo? Lo que sería más eficiente? El índice no es grande por ahora (pero en la producción podría ser).

Probé lectura de la documentación, pero estoy confundido con los tipos de mapeo consideran obsoletos en ES 6.x, y las cosas tontas que he intentado no ha funcionado. Siento que esto debería ser una cosa tan fácil de responder para alguien con más experiencia. Cualquier ayuda sería muy apreciada.

Publicado el 20/10/2018 a las 10:51
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Para visualizar esto en Kibana, usted tiene que tener un tipo "geo_point" en su asignación. Una forma sencilla de crear un campo de este tipo en la asignación sería:

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

Entonces, cuando se presiona (índice) un documento en el índice, el campo "your_geo_location_field" debe tener un flotador y campos "lat" "Lon", o una matriz que contiene los dos, Por ejemplo, este es un objeto válido:

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

Donde "geolocalización" es un ejemplo de un campo de este tipo.

Lo que tendría que hacer es crear otro índice con el mapa anterior, indexar el índice actual en el newely creado uno (con todos los documentos que contienen objetos válidos) y luego Kibana le ofrecen la visualización en la parte superior de este campo.

Respondida el 31/10/2018 a las 20:45
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more