Solr 分数提升 - 基于喜欢的数量
Solr score boost - based on number of likes
我在 solr 文档中添加了 fs_votingapi_result
这表示喜欢的数量。
我发现下面的函数可以根据 fs_votingapi_result
.
提高分数
但我无法理解这背后的逻辑 - 额外的参数是什么 $vote_steepness
、$total
、$total
、$vote_boost
?
bf=recip(rord(fs_votingapi_result),$vote_steepness,$total,$total)^$vote_boost
我是 solr 的新手,我找不到任何 document/article 来了解更多关于这个的信息。
这是在 Function Query documentation。
食谱
recip(x,m,a,b) 实现 a/(m*x+b) 的倒数函数。 m、a、b 是常量,x 是任何数字字段或任意复杂的函数。
罗德
索引值的逆序数。 (在你的例子中,函数:rord(fs_votingapi_result)
会产生 1
的记录,获得最多的选票,2
获得第二多的选票,等等......)
所以
recip(rord(fs_votingapi_result),$vote_steepness,$total,$total)
= $total / ($vote_steepness * rev-ordinal-of-vote-result + $total)
然后结果被 $vote_boost
提升以创建提升函数(来自 bf
参数)。
=($总计/($vote_steepness * rev-ordinal-of-vote-result + $total))* $vote_boost
从查询的其余部分添加到文档分数。 (然后在返回分数之前,它们在所有匹配的文档中被归一化)
$<var>
值要么在 solrconfig.xml 中定义,要么更常见地作为单独的 http 查询参数传递。
希望这能给你一个起点。
我在 solr 文档中添加了 fs_votingapi_result
这表示喜欢的数量。
我发现下面的函数可以根据 fs_votingapi_result
.
但我无法理解这背后的逻辑 - 额外的参数是什么 $vote_steepness
、$total
、$total
、$vote_boost
?
bf=recip(rord(fs_votingapi_result),$vote_steepness,$total,$total)^$vote_boost
我是 solr 的新手,我找不到任何 document/article 来了解更多关于这个的信息。
这是在 Function Query documentation。
食谱
recip(x,m,a,b) 实现 a/(m*x+b) 的倒数函数。 m、a、b 是常量,x 是任何数字字段或任意复杂的函数。
罗德
索引值的逆序数。 (在你的例子中,函数:rord(fs_votingapi_result)
会产生 1
的记录,获得最多的选票,2
获得第二多的选票,等等......)
所以
recip(rord(fs_votingapi_result),$vote_steepness,$total,$total)
= $total / ($vote_steepness * rev-ordinal-of-vote-result + $total)
然后结果被 $vote_boost
提升以创建提升函数(来自 bf
参数)。
=($总计/($vote_steepness * rev-ordinal-of-vote-result + $total))* $vote_boost
从查询的其余部分添加到文档分数。 (然后在返回分数之前,它们在所有匹配的文档中被归一化)
$<var>
值要么在 solrconfig.xml 中定义,要么更常见地作为单独的 http 查询参数传递。
希望这能给你一个起点。