我在elasticsearch中有一个索引,其位置字段Map为地理位置点。这是“索引管理设置”的“Map”选项卡中的内容。
{
"mappings": {
"_doc": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
根据elasticsearch上的geo point文档,我应该可以将此作为“lat,lon”字符串发送
这是发送到elastic的json中的一个位置的值
'location': '32.807078,-89.908972'
我收到了这个错误信息
RequestError(400, 'illegal_argument_exception', 'mapper [location] cannot be changed from type [geo_point] to [text]')
更新
我能够得到数据流,但现在它进来的文本数据,而不是地理点!
这是在我的索引Map和其他Map中
这在数据里
即使有Map,数据是文本,我无法在Map中使用它。
解决方案
除了核对答案,还需要这样做。
转到主页->管理->kibana->索引模式
删除了原来的索引模式,并创建了一个新的,现在它被视为地理数据!
1条答案
按热度按时间ogsagwnx1#
在索引Map的基础上,您似乎正在使用7.x之前的elasticsearch版本。
我已经使用问题中提供的索引Map(使用版本6.8)为文档编制了索引。别忘了加上
_doc
(或索引Map中使用的类型)在url中(索引数据时)索引Map:
索引数据:
将文档发布到elasticsearch时,请确保url的格式如下所述:
答复:
编辑1:
根据下面的评论,op使用的是7.x
使用7.x的索引Map