【问题标题】:Custom sorting based on location and rating in Elasticsearch基于 Elasticsearch 中的位置和评级的自定义排序
【发布时间】:2015-04-13 22:52:24
【问题描述】:

我们目前正在为我们的记录列表构建一种“最佳”方法,我们需要根据地理距离和评级一起对记录进行排序。

例如,距离 0-1Km 的记录将按照较高的评分排序,1-2km 的记录也会按照较高的评分排序。但是任何地理距离为 0.95 公里且评级为 7 的记录,另一个地理距离为 1.1 公里且评级为 9 的记录。距离为 0.95 公里的记录将排在首位。因此,距离以 1Km 距离分组,然后根据等级进行排序。

我怎样才能将它直接应用于elasticsearch。我猜它需要自定义排序脚本?

【问题讨论】:

    标签: sorting elasticsearch location


    【解决方案1】:

    你可以试试这个:

    按“评分”对所有结果进行排序:

    http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html

    应用地理距离 agg:

    http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geodistance-aggregation.html

    在 geo agg 中,嵌入 top hits agg 以查看实际结果:

    http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html

    如果这不会导致每个地理范围桶中的热门点击按“评分”排序,则将查询设为函数评分查询,评分只是评分。

    http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多