0

我目前正在用 Java 为 Elasticsearch 创建一个自定义脚本来帮助评分。如果我使用 mvel 我可以说

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

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

4

1 回答 1

3

翻译成本机脚本,您的 mvel 语句将如下所示:

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

也可以使用getLats()andgetLons()方法检索纬度和经度列表作为数组,并使用计算距离

GeoDistance.PLANE.calculate(lat1, lon1, lat2, lon2, unit)
于 2012-11-29T19:13:59.797 回答