我想在我的程序中添加一些自定义地理搜索功能(不是geoip,将ip地址转换为坐标)。如何将自定义lat和lng数据过滤为elasticsearch geo_type格式数据,以便我可以在kibana tile map中进行可视化?
答案 0 :(得分:2)
所以你可能已经发现,有一个(有点笨重)的解决方案。 基本上你需要设置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:
ElasticSearch how to setup geo_point
在这里:
https://discuss.elastic.co/t/geo-point-logging-from-python-to-elasticsearch/37336