4

我已经设法在 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 的任何想法?

4

3 回答 3

6

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

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

尝试将 bf 参数设置为

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

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

于 2010-06-18T17:27:57.797 回答
3

显然,这对于 DVD 但不是蓝光的电影来说是正常的,因为它们的分数会受到负面影响。这是因为您添加的约束越多,queryNorm 值减少的越多 - 所有分数都乘以该值。

于 2009-06-06T19:13:06.043 回答
-1

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

于 2009-05-04T15:05:25.543 回答