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

标签 java elasticsearch

我目前正在为 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/

相关文章:

java - 打印 JTable 时遇到问题

elasticsearch - 查询以 Elasticsearch 中的数据并对其进行排序

java - OPCUA Milo-堆栈核心故障-构建阶段

java - Android 中的进度对话框不显示?

Elasticsearch 6.2/Kibana 查询 : One field must exists and one field must not exists

elasticsearch - 这个ansible错误是什么意思?

elasticsearch - 在Kibana中没有登录的 Elasticsearch 警报

elasticsearch - 如何删除 Elasticsearch ?

java - ClassNotFoundException 在 weblogic 10.3.6 中的爆炸耳朵中部署 Spring 上下文

Java exec方法,如何正确处理流