JSON 带有不匹配 Elasticsearch 文档格式的字段的地理点映射

JSON geo-point mapping with fields not matching Elasticsearch documentation format

我是 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 模式以获得匹配的对象文档中的地理点格式之一?

可悲的是你问的是不可能的:(

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

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

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

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

摄取管道https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest.html