elasticsearch - 用于获取从任意点到地理点的距离的elasticsearch查询的单位

标签 elasticsearch elasticsearch-6 elasticsearch-dsl-py

我有一个 django 项目,它使用 elasticsearch 6.5.3 为商店中的产品建立索引,并将位置作为 GeoPoints。我正在尝试查询该索引并计算任意点之间的距离,例如用户到每个结果的位置。

我正在使用elasticsearch_dsl,我的代码如下所示:

search_query = search_query.script_fields(distance={
'script':{
    'inline':"doc['location'].arcDistance(params.lat, params.lon)", 
    'params': {
        'lat':user_loc.lat, 
        'lon':user_loc.lon
        }
    }
})
for result in search_query.execute():
    print(result.distance)

这给了我看起来像这样的值:

[123456.456879123]

但我不确定它的单位。 通过使用 https://www.nhc.noaa.gov/gccalc.shtml 中的在线距离计算器, 这给我的距离约为 123 公里, 看起来值的单位是米。

所以:

<强>1。我在哪里可以找到有关其单位的明确答案?

请指出这些方法的相关文档。 我也有兴趣知道是否有一种方法可以指定方法调用中结果的预期单位。

<强>2。在 python 中是否有更好的方法来做到这一点?

最佳答案

单位是由在脚本中提供值的 arcDistance 方法返回的单位。

The arc distance (in meters) of this geo point field from the provided lat/lon

无痛文档还有很多不足之处(6.5 中似乎没有关于此方法的文档)。上面的引用是从这里获得的:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/modules-scripting.html

此外,他们还提到 arcDistance 在这里计算米:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/breaking_50_scripting.html

关于elasticsearch - 用于获取从任意点到地理点的距离的elasticsearch查询的单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975482/

相关文章:

elasticsearch - 是否可以在 ElasticSearch >2.0 搜索中返回分析的字段?

java - 如何将 Spring Boot 应用程序正确连接到 Elasticsearch 6.1?

elasticsearch - 更新 elasticsearch 中的 search.max_buckets

python-2.7 - 使用elasticsearch-dsl获取在python中按 “@timestamp”排序的结果

python - 当按Elasticsearch_dsl中的特定属性分组时,如何检索最后一个日志?

elasticsearch - Elasticsearch搜索数字字段

php - 使用Elastic Search在CouchDB中的数组内部查询

javascript - Elasticsearch 6.5亿条记录优化

elasticsearch - 如何聚合直到在 ElasticSearch 中达到某个值?

elasticsearch - 在Elasticsearch中汇总嵌套文档