【问题标题】:How to correctly boost results in Solr Dismax query如何正确提升 Solr Dismax 查询中的结果
【发布时间】:2010-10-12 16:30:51
【问题描述】:

我已经设法在 Solr 中建立了一个索引,我可以搜索关键字、生成构面、查询构面等。这一切都很好。我已经使用 dismax 查询实现了我的搜索,因此它会搜索预定的字段。

但是,我的结果按分数排序回来了,这似乎仅由关键字相关性计算得出。我想调整字段具有预定值的分数。我想我可以使用 boost 查询和 boost 函数来做到这一点,但这里的文档:

http://wiki.apache.org/solr/DisMaxRequestHandler#head-6862070cf279d9a09bdab971309135c7aea22fb3

不是特别有用。我尝试在搜索中添加一个 bq 参数:

&bq=media:DVD^2

(是的,这是电影的索引!)但是当我开始添加越来越多时我发现:

&bq=media:DVD^2&bq=media:BLU-RAY^1.5

我发现负面结果 - 例如DVD 电影蓝光电影的评分会受到负面影响。最后,一切似乎都变得平衡了,我的分数与我开始提升之前一样。

我一定是做错了,我想知道“增强功能”是否在某个地方出现。关于如何正确使用 boost 的任何想法?

【问题讨论】:

    标签: search lucene solr


    【解决方案1】:

    这有点晚了,看起来你可能已经有了你要找的东西,但是......

    如果您对 boost函数 感到好奇(从您想要的结果来看,我认为您应该如此)您应该查看 bf 参数而不是 bq 参数。

    尝试将 bf 参数设置为

    media:DVD^2 media:BLU-RAY^1.5
    

    我认为这可以实现您想要的。

    【讨论】:

      【解决方案2】:

      显然,对于 DVD 但不是 BLU-RAY 的电影,这对他们的分数产生负面影响是正常的。这是因为您添加的约束越多,queryNorm 值减少的越多 - 所有分数都乘以该值。

      【讨论】:

        【解决方案3】:

        听起来您需要在索引时而不是查询时应用提升。因此,当您准备要添加到索引中的文档时,将 DVD 提升 2,将蓝光提升 1.5。

        【讨论】:

          猜你喜欢
          • 2014-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多