ElasticSearch distanceInKm返回错误的距离

Yeg*_*eps 3 elasticsearch

我已经实现了一个脚本字段,返回像这里的距离在elasticsearch结果中返回距离?

红宝石:

{
  script_fields: {
    distance: {
      script: "doc['#{source_field}'].distanceInKm(#{lat}, #{lng})"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是返回的距离不正确.如果该点接近,则距离更正确,但随着距离越来越远,它变得越来越不正确.

似乎无法弄清楚我做错了什么.

imo*_*tov 8

distanceInKm()计算距离作为平面上的点,这是快速但不是很准确.请尝试使用arcDistanceInKm().