Solr偏差值的可接受范围

时间:2018-03-21 16:35:04

标签: search solr

我最近做了大量的工作,在搜索时在Solr中应用偏差以获得更相关的结果,而我感到好奇的一件事是可接受的偏差值范围。例如,在我看到的一个Solr实现中,适用偏差值的范围为0.1到21.0,中间值为0.2,0.3,0.5,0.8,1.0,2.0,3.0,5.0,8.0和13.0 。在另一个地方,我已经看到最大值为100.在我读过的所有内容中,我从未见过可接受的值范围的定义。有这样的事吗?我猜测偏差背后有一些复杂的数学概念,所以我也想知道在定义偏差值范围时最佳做法是什么。

沿着这些方向的另一个问题是,偏差值之间的差异是否起作用?例如,如果我有两个字段标题正文,并且在我的qf参数中添加了

title^8 body^2

是否意味着标题字段的权重比正文字段多4倍,或者会添加

title^3 body^2 

有同样的效果吗?

1 个答案:

答案 0 :(得分:1)

您可以将debugQuery=true附加到任何查询,以确切了解每个字段对计算得分的贡献。

qf中给出的权重乘以为匹配计算的分数,因此title^8title字段的最终分数的贡献大于title^3确实

这可以快速测试。使用^2.0

(MATCH) max of:\n    0.13514908 = (MATCH) weight(field:term^2.0 in 36)

使用^4.0

(MATCH) max of:\n    0.27026632 = (MATCH) weight(field:term^4.0 in 36)

..这正好是两倍。

所以^8 vs ^2意味着第一个字段的权重比第二个字段重四倍。

请注意,此比较在此处起作用,因为对于两个查询都使用相同的查询规范化(这不是增强值之间存在更大差异的情况 - 跨查询的分数实际上不具有可比性)。 / p>

可接受的值在双倍范围内,“最佳实践”是尝试获取您正在寻找的匹配配置文件。这没有硬科学,但你必须调整这些值(如果有足够的信号,还有机器学习选项)来获得你想要的结果列表。