在Java中获取自定义脚本中的距离

时间:2012-11-29 18:56:11

标签: java elasticsearch

我目前正致力于使用Java为Elasticsearch创建自定义脚本以协助评分。如果我使用mvel,我可以说

doc['field_name'].distance(lat, lon)

在java中,似乎没有(看似可用的)距离函数可以对文档中的字段运行。我想这是可以的,因为如果我有它,我可以使用Haversine距离公式。但是,如果Elasticsearch库中内置了某些内容,那么我宁愿使用它。

1 个答案:

答案 0 :(得分:3)

转换为本机脚本,您的mvel语句如下所示:

((GeoPointDocFieldData)doc().field("field_name")).distance(lat, lon)

还可以使用getLats()getLons()方法检索纬度和经度列表作为数组,并使用

计算距离
GeoDistance.PLANE.calculate(lat1, lon1, lat2, lon2, unit)