2017-08-01 1 views
1

Je suis relativement nouveau dans Elasticsearch et j'essaie de visualiser certaines données JSON avec Kibana. Le problème que j'ai est avec le format de cartographie géo-point.Mappage de points géographiques JSON avec des champs ne correspondant pas au format de documentation Elasticsearch

L'objet JSON contenant les champs de localisation pertinents (LON/latitude) ressemble à ceci:

"geoNetwork": { 
    "city": "Test City", 
    "cityId": "1234567", 
    "continent": "Americas", 
    "country": "Canada", 
    "latitude": "44.1234", 
    "longitude": "-63.6940", 
    "metro": "(not set)", 
    "networkDomain": "bellaliant.net", 
    "networkLocation": "bell aliant regional communications inc.", 
    "region": "Nova Scotia", 
    "subContinent": "Northern America" 
    }, 

Cela ne correspond pas au format géo-point dans la documentation ElasticSearch (https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html, premier exemple), comme la longitude et latitude ne sont pas les deux seules clés de l'objet geoNetwork (location). Existe-t-il un moyen de définir le mappage des points géographiques afin que je puisse utiliser le JSON tel quel, ou devrais-je modifier le schéma JSON pour avoir un objet correspondant à l'un des formats de point géographique dans le Documentation?

Répondre

0

Malheureusement ce que vous demandez est impossible :(

ElasticSearch nécessitent un GeoPoint/GeoLocation/... pour toute opération géographique.

Donc, à partir de là, je recommande de mettre à jour votre JSON avec un nouveau GeoPoint champ.

Si pour une raison technique, ce n'est pas possible, alors que je ne les ai pas utilisé moi-même, je serais recherche pipeline d'ingestion elasticsearch. Il agit de la même manière qu'un déclencheur SQL. Vous serez en mesure d'ajouter dynamiquement de nouveaux champs avant le processus d'indexation, ce qui signifie que vous pouvez créer lors de l'insertion un nouveau champ GeoPoint à partir de votre champ latitude, longitude.

GeoPoint: https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html

Ingestion Pipeline: https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest.html