python - 使用 AWS ElasticSearch 服务实例将包含地理纬度和纬度的两个浮点字段映射到 kibana 中的 geo_point
问题描述
我正在构建一个解决方案,通过 kinesis 流和 firehose 从 Lambda(Python 2.7)处理数据到 Elastic Search 域。数据存储在 Python 字典中并作为 JSON 转储到 Kinesis
dataDictionary = {
"precipitationType": precipitationType,
"location": location,
"humidity" : humidity,
"groundTemp": groundTemp,
"airTemp": airTemp,
"windSpeed": windSpeed,
"windDirection": windDirection,
"measureDate": parsedMeasureDate,
"systemDate": systemDate,
"stationGeoLatitude": stationGeoLatitude,
"stationGeoLongitude": stationGeoLongitude
}
#Push data to AWS Kinesis Stream
res = kinesis.put_record(StreamName = LocalStreamName,Data=json.dumps(dataDictionary),PartitionKey='systemDate')
过程成功,但想在 Kibana的地图上显示结果,我只有两个浮点字段,没有geo_point/geohash 字段
我不知道如何在 AWS ElasticSearch Service 中映射它们。我找到了一些关于映射的文档,但我不知道如何在 AWS 中使用它。也许我应该在 Python 代码中以其他方式传递这些数据?
解决方案
您必须使用映射并告诉 elasticsearch 将您的 2 个字段映射为地理位置:
https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html
您将不得不重新索引您的数据,但首先指定您的映射。
您可以使用 python 客户端执行此操作,或手动发布 json 映射:
把你的索引
{
"mappings": {
"your_type": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
推荐阅读
- reactjs - workbox-webpack-plugin 没有在 React PWA 中缓存块
- python - Python JSON替换特定行中的值
- android - 如何在同一个 ConcatAdapter 中使用具有多种视图类型的不同适配器?
- prestashop - 无法让 Multistore 在 Prestashop ( Windows ) 1.7 上为第二个商店正常工作
- reactjs - 如何在反应中重新排序动态输入?
- java - 未能执行目标 org.apache.maven.plugins:maven-war-plugin:2.5:war
- python - cppyy 无法打开共享库
- javascript - 如何在
- 每次用户使用 jQuery 在某个部分滚动时
- r - 列运算符仅涉及 R 中的特定列(特定日期和代码,即)
- javascript - Puppeteer.js - 删除 Chrome 背景信息