我对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模式以使对象与文档中的某种地理点格式匹配?
答案 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