JSON地理点映射,其字段与Elasticsearch文档格式不匹配

时间:2017-08-01 20:12:05

标签: elasticsearch kibana

我对Elasticsearch很新,我试图用Kibana可视化一些JSON数据。我遇到的麻烦是地理点映射格式。

包含相关位置字段(lon / lat)的JSON对象如下所示:

  "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"
  },

这与Elasticsearch文档(https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html,第一个示例)中的地理点格式不匹配,因为经度和纬度不是geoNetwork(位置)对象中唯一的两个键。

有没有办法定义地理点映射,以便我可以按原样使用JSON,或者我是否必须修改JSON模式以使对象与文档中的某种地理点格式匹配?

1 个答案:

答案 0 :(得分:0)

可悲的是,你所要求的是不可能的:(

Elasticsearch 需要 GeoPoint / GeoLocation / ...适用于任何地理操作。

因此,我会建议使用新的 GeoPoint 字段更新您的json

如果由于某些技术原因,这是不可能的,虽然我自己还没有使用它们,但我会查找 elasticsearch摄取管道。它的行为类似于SQL触发器。您将能够在索引处理之前动态添加新字段,这意味着您可以在插入时从纬度,经度字段创建新的GeoPoint字段。

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

食入渠道https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest.html