我目前正在为 Elasticsearch 创建一个 Java 自定义脚本来协助评分。如果我使用 mvel 我可以说
doc['field_name'].distance(lat, lon)
在java中,似乎没有(看似可用的)距离函数可以针对文档中的字段运行。我想这没问题,因为如果我有半正矢距离公式,我就可以使用它。但是,如果 Elasticsearch 库中内置了某些东西,那么我宁愿使用它。
最佳答案
转换为原生脚本,您的 mvel 语句将如下所示:
((GeoPointDocFieldData)doc().field("field_name")).distance(lat, lon)
还可以使用 getLats()
和 getLons()
方法以数组形式检索纬度和经度列表,并使用
GeoDistance.PLANE.calculate(lat1, lon1, lat2, lon2, unit)
关于java - 在 Java 中的自定义脚本中获取距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632730/