我是solr的新手,并试图了解boost函数的工作原理。
以下是现有的查询 -
http://solr_slave_2/solr/datCore/select?indent=on&q=qq=live+scores:+england+vs+new+zealand+champions+trophy&q={!boost+b%3D$dateboost+v%3D$qq+defType%3Ddismax}&dateboost=recip(ms(NOW/DATE,createdDate),3.16e-8,1,1)&defType=dismax&qf=title+subject&fq=(filetype:text)&start=0&rows=20&fl=title,subject,createdDate,score
查找上面查询的以下结果集 -
<doc>
<str name="subject">
Get live cricket score & live commentary of 3rd wamp-up match between India vs New Zealand on Times of India.
</str>
<str name="title">Champions Trophy, warm-up: India v New Zealand</str>
<date name="createdDate">2017-05-28T09:33:51Z</date>
<float name="score">39.4114</float>
</doc>
<doc>
<str name="subject">
Get all the live updates from Match 6 of the Champions Trophy between England and New Zealand.
</str>
<str name="title">Champions Trophy Live: England v New Zealand</str>
<date name="createdDate">2017-06-06T08:56:29Z</date>
<float name="score">37.291893</float>
</doc>
有人可以帮我理解如何计算上述分数吗?
是否在字段中匹配的最大字数?或者是用于计算得分的单个词的频率?或其他什么?
请指导。
谢谢,
Vibhav
P.S - 如果有人选择对该问题进行投票,请在评论中提及原因,以便我可以改进此问题的详细信息。
答案 0 :(得分:2)
如果无法访问您的Solr实例,则无法确定您的分数是如何计算的,因为它取决于很多因素(匹配,术语,字段,频率等)。我的建议只是将debugQuery=true
添加到您的查询中并检查您将获得的调试输出(一个附加部分),其中包括如何转换您的查询以及如何计算得分,因为输出非常详细。
我强烈建议您使用http://splainer.io/表示如何计算得分以及哪些是影响您得分的更重要因素。