我想在我的程序中添加一些自定义地理搜索功能(不是geoip,将IP地址转换为坐标)。如何将自定义的纬度和 LNG 数据过滤到 elasticsearch 中geo_type格式化数据,以便我可以在 Kibana 平铺地图中进行可视化?
你可能已经发现,有一个(有点笨拙的)解决方案。基本上,您需要先设置geo_point字段的映射,然后才能以这种方式记录数据(我也直接使用 ES python 模块而不是通过 logstash 进行日志记录......只是为了确保安全)。
那么如何设置正确的映射呢?
确保使用一个新的 Elasticsearch 实例(或者至少尚未设置索引和您将使用的类型的映射)
从感知运行(或使用适当的 curl 命令)
PUT <index_name>
{
"mappings": {
"<type_name>": {
"properties": {
"timestamp": {
"type": "date"
},
"message": {
"type": "string"
},
"location": {
"type": "geo_point"
}
<etc.>
}
}
}
}
现在你是金色的,只要确保你的geo_points是ES除外的格式
有关映射geo_points的更多信息,请单击此处:
弹性搜索如何设置geo_point
在这里:
https://discuss.elastic.co/t/geo-point-logging-from-python-to-elasticsearch/37336