Solr得分提升 - 基于喜欢的数量

时间:2015-12-25 06:16:47

标签: solr solr-boost

我在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的新手,我无法找到任何文件/文章来了解这一点。

1 个答案:

答案 0 :(得分:1)

这是Function Query documentation

<强> RECIP

与recip(x,m,a,b)实现a /(m * x + b)的倒数函数。 m,a,b是常数,x是任何数字字段或任意复杂的函数。

<强> rord

索引值的反转序数。 (在您的情况下,函数: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提升结果以创建boost函数(来自bf param)。

=($ total /($ vote_steepness * rev-ordinal-of-vote-result + $ total))* $ vote_boost

从查询的其余部分添加到文档分数中。 (然后在返回分数之前,它们在所有匹配的文档中进行标准化)

$<var>值可以在solrconfig.xml中定义,也可以更常见地作为单独的http查询参数传递。

希望能给你一个起点。