【问题标题】:Dropping search results by score in Solr在 Solr 中按分数删除搜索结果
【发布时间】:2014-05-16 12:49:18
【问题描述】:

我发现您可以通过将“fl”参数设置为“fl=score”来获得与 Solr 中的搜索相关的分数。假设我需要通过仅获取具有平均分数的广告来进一步过滤。

喜欢 mean_score = ( score_1 + score_2 + score_3 ... + score_n ).

投放ad_score < mean_score的广告

是否可以通过 Solr 做到这一点,按分数删除结果?

【问题讨论】:

  • 问题是什么?
  • 抱歉,将编辑帖子..

标签: php apache search solr lucene


【解决方案1】:

我不相信 Solr 支持函数查询中的聚合,所以这必须作为结果集的后处理来完成。

但是,这确实不是一个好主意。 Lucene 评分不打算以这种方式工作。

一方面,分数的差异往往很大。最佳结果和接近结果之间的差异可能是一个完整的数量级,而不是说,下降 10%。试图指定一个适用于所有情况的任意截止点实际上并不可行。运行一些explain queries 可能会让您了解这类事情。

此外,您的截止点可能会有移动的趋势。如果添加新文档、更改文档内容等,文档的分数可能会发生变化,即使搜索找到的文档保持不变。这可能会导致某天搜索到所需的文档,而下一次却找不到任何可辨别的原因,这可能会非常令人沮丧。

有关更多信息,请参阅文章:Scores As Percentages

更好的方法是以在查询中嵌入截断的方式来构建查询。 edixmax 有许多工具可用于此目的。其中,mm (Min Should Match) 参数可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2018-10-23
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    相关资源
    最近更新 更多