【问题标题】:GeoDistance filter ElasticSearchGeoDistance 过滤器 ElasticSearch
【发布时间】:2012-09-03 01:42:40
【问题描述】:

我正在使用Geo Distance FilterElasticSearch。查询工作正常,但我想知道是否可以获得为每个文档计算的距离。例如,如果我将距离阈值设置为 100 公里,我想获取每个文档的距离:

doc124 km

doc212 km

...

这可能吗?如何实现?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    是的,我相信这是可能的,但是当我尝试时,我无法让它工作(我正在使用轮胎,一个 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 字段。

    【讨论】:

    • 非常感谢@Robin。只是对您的问题的一个想法:我正在使用Spherical Law of Cosines 来计算此刻的距离。该功能非常容易实现。通过使用阈值,我发现为搜索计算的距离就是这个精确的公式,所以如果你在_score 中找不到距离,使用它可能是个好主意。
    • 谢谢,我实际上使用的是 Haversine 公式,您的文章也谈到了这个公式。但是我将它用于在后台作业中运行的其他东西,我不想在显示结果时再次计算这些东西。我猜我可以用javascript来做。或者只是进一步调查,我确信有办法用弹性/轮胎做到这一点。
    • 当然。我会尝试你的建议,并会及时更新。非常感谢。 +1 sort_score
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2015-09-17
    • 2014-02-02
    • 2016-05-05
    相关资源
    最近更新 更多