Return 弹性搜索中地理距离查询中的距离 5.x
Return distance in geo distance query in elastic search 5.x
我需要使用地理距离查询在弹性搜索中获取与搜索坐标的距离。我试过这个
curl -XGET 'http://127.0.0.1:9200/branch-master/master/_search?pretty=1' -d '
{
"script_fields" : {
"distance" : {
"params" : {
"lat" : 18.00,
"lon" : 72.00
},
"script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)"
}
}
}
'
这是从Return distance in elasticsearch results?
得到的
但这给了我错误 "unknown key for a start_object in [params]"。我无法理解这是什么。上面的解决方案似乎适用于相当旧版本的 ES。我正在使用 ES 5.1。在手册中我找不到地理距离查询的相关解决方案。有人可以帮我吗?
方法 distanceInKm
已弃用,现已删除 (5.x)。例如,使用 arcDistance
代替。更多信息在这里:https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_scripting.html#_geopoint_scripts
语法略有改动。这在 Elasticsearch 5.6 中对我有用。
{
"script_fields": {
"geo_distance": {
"script": {
"params": {
"lat": 18.00,
"lon": 72.00
},
"inline": "doc['location'].arcDistance(params.lat, params.lon)"
}
}
}
}
我需要使用地理距离查询在弹性搜索中获取与搜索坐标的距离。我试过这个
curl -XGET 'http://127.0.0.1:9200/branch-master/master/_search?pretty=1' -d '
{
"script_fields" : {
"distance" : {
"params" : {
"lat" : 18.00,
"lon" : 72.00
},
"script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)"
}
}
}
'
这是从Return distance in elasticsearch results?
得到的但这给了我错误 "unknown key for a start_object in [params]"。我无法理解这是什么。上面的解决方案似乎适用于相当旧版本的 ES。我正在使用 ES 5.1。在手册中我找不到地理距离查询的相关解决方案。有人可以帮我吗?
方法 distanceInKm
已弃用,现已删除 (5.x)。例如,使用 arcDistance
代替。更多信息在这里:https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_scripting.html#_geopoint_scripts
语法略有改动。这在 Elasticsearch 5.6 中对我有用。
{
"script_fields": {
"geo_distance": {
"script": {
"params": {
"lat": 18.00,
"lon": 72.00
},
"inline": "doc['location'].arcDistance(params.lat, params.lon)"
}
}
}
}