是否有可能在Solr中增加布尔字段,以便获得更高的分数?
我们有一个看起来有点像这样的索引:
在搜索时,已经审核过的文档(即is_reviewed = true)的权重应该大于那些没有审核的文档,而不是完全排除它们.
使用is_review:true^100
似乎不起作用,并且不包括未经审查的项目,而不是仅仅给予它们较低的权重.如果有不同的方法可以实现吗?谢谢!
某些查询解析器具有专用于此类用法的功能.例如,dismax查询解析器有一个boost查询bq
,它允许您通过将其子句添加到原始查询来提升与查询匹配的文档.还有一个增强功能bf
,允许您将分数乘以函数的结果.例如,使用is_review
此bf
参数,
is_review
字段未定义的每个文档的分数将乘以0.is_review
= false
将乘以1.is_review
= = true
将乘以2.is_review:true^100
除非您AND
用作默认查询运算符,否则不应排除未审核的项目.在这种情况下,你可以尝试更换is_review:true^100
的(is_review:true^100 OR is_review:false^0)
.
如果你有兴趣在dismax查询分析器的增强功能,但想坚持到默认的查询分析器,您可以使用升压查询分析器,这将让你与任何函数乘以任何查询的分数.
归档时间: |
|
查看次数: |
3449 次 |
最近记录: |