Python 如何修复';找不到地理点字段[pin.location]';
所以我有一个地图点索引,我需要在里面放一些数据。但它似乎没有将我的数据注册为pin.location的有效输入 我已经试过了我能从中得到的一切 但这仍然不起作用 这是我设置索引的地方:Python 如何修复';找不到地理点字段[pin.location]';,python,
elasticsearch,Python,
elasticsearch,所以我有一个地图点索引,我需要在里面放一些数据。但它似乎没有将我的数据注册为pin.location的有效输入 我已经试过了我能从中得到的一切 但这仍然不起作用 这是我设置索引的地方: 映射={ “映射”:{ “财产”:{ “pin”:{ “财产”:{ “地点”:{ “类型”:“地理点” } } }, “index.mapping.single_type”:False } } } es=Elasticsearch([{'host':'localhost','port':9200}]) 如果不存在
映射={
“映射”:{
“财产”:{
“pin”:{
“财产”:{
“地点”:{
“类型”:“地理点”
}
}
},
“index.mapping.single_type”:False
}
}
}
es=Elasticsearch([{'host':'localhost','port':9200}])
如果不存在es.index(索引=“组映射”):
创建(index='groups\u map',body=mappings)
索引(index='groups\u map',id=data[“id”],doc\u type='groups\u map',body=data,request\u timeout=30)
以下是数据:
数据={
“pin”:{
“属性”:{“位置”:{
“类型”:“地理点”,
'lat':request.POST['source\u lat'],
“lon”:请求.POST['source_lon']}
}
},
“id”:instance.id,
}
这是我的查询数据,这只是一个包含lat和lon值的字典
query={
“布尔”:{
“必须”:{
“全部匹配”:{}
},
“过滤器”:{
“地理距离”:{
“距离”:“12公里”,
“pin.位置”:{
“lat”:数据[“lat”],
“lon”:数据[“lon”]
}
}
}
}
}
返回es.search(index=“groups\u map”,body={“query”:query},size=20)
这是我得到的全部错误:
elasticsearch.exceptions.RequestError:RequestError(400,“搜索阶段执行异常”,“找不到地理点字段[pin.location]”)问题是您的数据不正确,需要删除
属性
键。您的数据应该如下所示
data = {
"pin": {
"location": {
'lat': request.POST['source_lat'],
'lon': request.POST['source_lon']
}
},
"id": instance.id,
}
注意:在为新数据编制索引之前,您需要删除并重新创建索引。@LinPy我收到以下错误:elasticsearch.exceptions.RequestError:RequestError(400,'mapper\u parsing\u exception',根映射定义有不受支持的参数:[pin:{properties={location={type=geo\u point}}}')``mappings={mappings:{pin{“properties”:{“location”:{“type”:“geo_point”}}}``我将数据更改为您所说的内容,但仍然收到消息:elasticsearch.exceptions.RequestError:RequestError(400,“搜索阶段执行异常”,“找不到地理点字段[pin.location]”)您需要先删除索引并重新创建它。我也使用这个curl-X delete“localhost:9200/groups\u map”完成了这项操作。好的,那么您能显示运行
curl-XGET“localhost:9200/groups\u map”时得到的结果吗
运行代码后?删除之前:{“组映射”:{“别名”:{},“映射”:{“属性”:{“id”:{“类型”:“long”},“pin”:{“属性”:{“位置”:{“属性”:{“lat”:{“类型”:“文本”,“字段”:{“关键字”:{“类型”:{“关键字”,“忽略上面的”:256}}},“lon”{“类型”:“文本”,“字段”:{“关键字”:{“关键字”:{“类型”:“{”上面的关键字”{“类型”}:“文本”,“字段”:{“关键字”:{“类型”:“关键字”,“忽略上面的内容”:256}}}}},“设置”:{“索引”:{“创建日期”:“156709163611”,“碎片数”:“1”,“副本数”:“1”,“uuid”:“Gp4hdzxGTpmINEbxGBDCUQ”,“版本”:{“已创建”:“7030199”),“提供的名称”:“组地图”}