【发布时间】:2012-09-03 01:42:40
【问题描述】:
我正在使用Geo Distance Filter 和ElasticSearch。查询工作正常,但我想知道是否可以获得为每个文档计算的距离。例如,如果我将距离阈值设置为 100 公里,我想获取每个文档的距离:
doc1:24 km
doc2:12 km
...
这可能吗?如何实现?
【问题讨论】:
标签: elasticsearch
我正在使用Geo Distance Filter 和ElasticSearch。查询工作正常,但我想知道是否可以获得为每个文档计算的距离。例如,如果我将距离阈值设置为 100 公里,我想获取每个文档的距离:
doc1:24 km
doc2:12 km
...
这可能吗?如何实现?
【问题讨论】:
标签: elasticsearch
是的,我相信这是可能的,但是当我尝试时,我无法让它工作(我正在使用轮胎,一个 RoR gem,所以你可能只使用 ElasticSearch 会更好)。
看看这个问题:https://github.com/karmi/tire/issues/169
我,niuage,在那里问同样的问题。
首先,我认为您必须按距离排序。
那么距离应该在_score 字段中,但由于某种原因,它不适合我。
我查看了文档,发现track_scores:
When sorting on a field, scores are not computed.
By setting track_scores to true, scores will still be computed and tracked.
因此,您可能想尝试将 track_scores 设置为 true,然后查看您的 _score 字段。
【讨论】:
_score 中找不到距离,使用它可能是个好主意。
sort 和 _score。