我在elasticsearch中使用了geo_point类型,我将其映射定义为
location : {"type":"geo_point"},
现在当我尝试使用像这样的script_ields时
script_fields : {
distance : {
script : "doc['location'].arcDistanceInKm(12.34,23.12)"
}
}
一切都工作正常,但现在当我将我的映射类型更改为此索引lats和longs时(因为我现在想要使用有界框)
location : {"type":"geo_point", "lat_lon":true},
现在,当我尝试使用上面的脚本时,我面临以下错误
GroovyScriptExecutionException[ElasticsearchIllegalArgumentException[No field found for [location] in mapping with types [restaurant]]]
餐馆是我索引的类型。
现在任何人都可以告诉我为什么我会得到这个错误,我怎么能解决这个问题如果你们只是对这个问题稍加了解就会真的很有帮助。
先谢谢你。
答案 0 :(得分:1)
在地图中,您有shop_type: { properties:{ location : {"type":"geo_point"} } }
。为什么异常引用restaurant
类型,但您的映射显示shop_type
类型?
您可能需要检查查询的正确性,并确保正在查询正确的类型。