Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search Solr偏差值的可接受范围_Search_Solr - Fatal编程技术网

Search Solr偏差值的可接受范围

Search Solr偏差值的可接受范围,search,solr,Search,Solr,我最近做了很多工作,在搜索时在Solr中应用bias,以获得更相关的结果,我很好奇的一件事是bias值的可接受范围。例如,在我看到的一个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。在我读过的所有东西中,我从未见过可接受值范围的定义。有这样的事吗?我猜在偏差背后有一些复杂的数学概念,所以我也想知道在定义偏差值范围时,最佳实践是什么 沿着这些思路的另一个问题是,偏差值

我最近做了很多工作,在搜索时在Solr中应用bias,以获得更相关的结果,我很好奇的一件事是bias值的可接受范围。例如,在我看到的一个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。在我读过的所有东西中,我从未见过可接受值范围的定义。有这样的事吗?我猜在偏差背后有一些复杂的数学概念,所以我也想知道在定义偏差值范围时,最佳实践是什么

沿着这些思路的另一个问题是,偏差值之间的差异起作用了吗?例如,如果我有两个字段titlebody,我在qf参数中添加

title^8 body^2
这是否意味着标题字段的权重是正文字段的4倍,还是会增加

title^3 body^2 

是否具有相同的效果?

您可以将
debugQuery=true
附加到任何查询中,以查看每个字段对计算分数的贡献

qf
中给出的权重乘以为比赛计算的分数,因此
title^8
将比
title^3
title
字段的最终分数贡献更大

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

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

(MATCH) max of:\n    0.13514908 = (MATCH) weight(field:term^2.0 in 36)
(MATCH) max of:\n    0.27026632 = (MATCH) weight(field:term^4.0 in 36)
。。这正好是两倍

因此,
^8
vs
^2
意味着第一个字段的重量是第二个字段的四倍

请注意,这种比较在这里是有效的,因为两个查询都使用相同的查询规范化(这不会是boost值之间存在更大差异的情况,不同查询之间的分数实际上是不可比较的)

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