【问题标题】:Solr sorting by distance and freshnessSolr 按距离和新鲜度排序
【发布时间】:2012-08-08 10:12:01
【问题描述】:

我将 Solr 用于我的移动应用程序,它运行良好。目前,我使用 Solr 搜索用户,按距离排序。但现在我想提升更新鲜的结果,并将最旧的结果留在结果末尾。

我的架构中有一个 last_active_datetime 字段,不是多值的:

<field name="last_active_datetime"  type="date" indexed="true" stored="true" multiValued="false" />

如何按距离对结果进行排序并将旧结果留在最后?在我这样做之前:

sort=geodist()asc

现在,我正在尝试这个:

sort=geodist()asc, last_active_datetime desc

但我看不出结果有什么不同。我是否必须为排序字段添加权重?

谢谢!

【问题讨论】:

    标签: java solr lucene distance


    【解决方案1】:

    这很容易:

    1. 如果您还没有使用它,请使用edismax parser
    2. 现在您可以使用 bf 对分数进行加权,因此提升更接近的文档,请参阅 here
    3. 也提升最近的文件,见this SO question

    【讨论】:

    • 谢谢,这正是我所需要的。我使用的是 edismax 解析器,所以我只添加了 2 个增强过滤器,现在它可以工作了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2013-11-11
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多