我有一个包含 geo_points 数组的 elasticsearch 文档。我已将映射创建为:
{
"test": {
"properties": {
"locations": {
"type": "geo_point"
}
}
}
}
现在,我正在尝试创建一个查询,我想在其中对 geo_points 数组进行一些处理。我创建了这样的查询:
{
"query": {
"filtered": {
"filter": {
"script": {
"script": "sDistance = doc['locations'].values[0].distanceInKm(28.51818,77.096080);"
}
}
}
}
}
我想计算点(28.51818,77.096080)与位置数组中第一个元素的距离。
它给了我这个错误:
GroovyScriptExecutionException[MissingMethodException[没有方法签名:org.elasticsearch.common.geo.GeoPoint.distanceInKm() 适用于参数类型:(java.lang.Double, java.lang.Double) 值:[28.51818, 77.09608]]
我尝试使用sDistance = doc['locations'][0].distanceInKm(28.51818,77.096080);
,但也导致了同样的错误。
我在这里做错了什么?
提前致谢。