使用函数查询在Solr中提升分数

前端之家收集整理的这篇文章主要介绍了使用函数查询在Solr中提升分数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Solr 4上工作,根据存储在Index中的流行度等级来优化我的solr结果排名.

现在当有人搜索时,除了相关性排名之外,我想使用人气排名来影响相关性排名.最简单的公式可能是:

new relavancy rank = score * popularityrank

我一直在寻找在http://wiki.apache.org/solr/FunctionQuery#product处的Solr函数查询来实现相同,但是我不知道如何让它工作.我没有得到如何使用产品功能得分.试图完成它,我总是得到错误,因为字段没有定义.

现在我可以使用How to boost fields in solr中定义的boost,但我还有其他逻辑/要求,我想使用Solr提供的功能查询.

例如,我尝试过以下似乎有效的简单查询

http://solr:8983/solr/select?q=hp%20laptop&defType=edismax&fl=Id,Name,score&bf=product%28$v1,$v2%29&v1=Id&v2=2

现在,根据我的实际要求,我想将得分作为$v2,但是我无法找到如何做到这一点.

任何帮助都是高度适用的.

解决方法

您可以尝试使用Solr提供的_val_钩子.

例如,要按分数* popularrank排序,请尝试使用此选项

http://solr:8983/solr/select?q=hp%20laptop&_val_="product(score,popularityrank)"

猜你在找的HTML相关文章