大家好!
我正在尝试使用相应python库中的bulk方法将geo_点数据放入elasticsearch。因此,我定义并成功上载了下一个Map方案(我检查了kibana ui中的方案设置是否正确):
{'mappings': {
'properties': {
'location': {'type': 'geo_point'}
}
}
}
然后我尝试将数据与下一个代码放在一起(我阅读了es手册并阅读了这里的示例)https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html) :
from elasticsearch import Elasticsearch
data = [{"index": {"_index": "geo_index", "_type": "geo_type"}}, {"location": (41.12, -71.34)}]
elasetic_search_instance = Elasticsearch(....)
elasetic_search_instance.bulk(data)
但在这里我遇到了下一个错误:“error”:{type”:“非法参数\u exception”,“reason”:“mapper[location]不能从类型[geo\u point]更改为[float]”
我也试着把geoèu point "location":{"lat": 41.12,"lon": -71.34 }
或作为字符串 "location":"41.12,-71.34"
我得到一个错误,输入数据不正确(“none”和“string”类型对应,而不是前面错误消息中的“to[float]”)。
我发现我的输入数据格式有问题,但不知道如何正确使用。请告知我应该如何重新格式化输入数据格式。
提前谢谢!
p、 对于所有其他数据类型,这个上传脚本工作正常
1条答案
按热度按时间6fe3ivhb1#
那里有很多不一致的地方,尤其是数据列表。下面是一个适用于您的用例的工作脚本: