在Solr中提升布尔字段

Mun*_*Mun 8 sorting solr

是否有可能在Solr中增加布尔字段,以便获得更高的分数?

我们有一个看起来有点像这样的索引:

  • DOCUMENT_ID
  • 标题
  • 描述
  • 关键字
  • is_reviewed

在搜索时,已经审核过的文档(即is_reviewed = true)的权重应该大于那些没有审核的文档,而不是完全排除它们.

使用is_review:true^100似乎不起作用,并且不包括未经审查的项目,而不是仅仅给予它们较低的权重.如果有不同的方法可以实现吗?谢谢!

jpo*_*ntz 9

某些查询解析器具有专用于此类用法的功能.例如,dismax查询解析器有一个boost查询bq,它允许您通过将其子句添加到原始查询来提升与查询匹配的文档.还有一个增强功能bf,允许您将分数乘以函数的结果.例如,使用is_reviewbf参数,

  • 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查询分析器的增强功能,但想坚持到默认的查询分析器,您可以使用升压查询分析器,这将让你与任何函数乘以任何查询的分数.