如何将搜索结果的分数四舍五入到小数点后 2 位?
我可以使用四舍五入的分数吗?
我需要一些想法,例如:
/?q=term&sort=round(score, 2) desc, orders desc
在 Solr 4.2 版中
我想按字段顺序对搜索结果进行排序,但我首先没有得到相关结果。我得到了几千个结果。所以,我想在 field orders和score之间做出妥协。
如何将搜索结果的分数四舍五入到小数点后 2 位?
我可以使用四舍五入的分数吗?
我需要一些想法,例如:
/?q=term&sort=round(score, 2) desc, orders desc
在 Solr 4.2 版中
我想按字段顺序对搜索结果进行排序,但我首先没有得到相关结果。我得到了几千个结果。所以,我想在 field orders和score之间做出妥协。
函数查询需要索引字段并且score
不是真实字段,因此您不能使用它。但我喜欢 femtoRgon 的方法。这是另一个版本
您可以将 rint()/product() 与query()结合使用
q=rint(product(query({!v="author:alice"}) ,100))&defType=func&fl=*,score&sort=score desc, author desc
用您的查询替换作者:alice 。我不确定性能影响是什么,因为它运行子查询。你必须检查一下。
我不知道没有round
函数查询,但是有rint
哪些舍入到一个 int,我相信你可以像这样使用它:
sort=rint(product(score,100)) desc, orders desc
而不是使用默认的 solr QueryComponent 使用scorePrecisionComponent,它将切断额外的精度并在您的排序条件上给予更多的权重。您可以通过配置 solr 参数 (scorePrecision) 将分数精度更改为您想要的值。