我是solr的新手,请帮助我提升领域。
我有这样的查询,
q=name:test* OR description:test*
我想将名称为500的增量/体重年龄应用于描述其50岁。
例如: 让我们考虑“test”术语在一个记录的名称字段中出现1次,在描述字段中出现20次来自另一个记录,然后提升计算应该如下所示。
代名:1 X 500 = 500
描述:20 X 50 = 1000。
结果,具有高增值的记录应该排在最前面。 所以基于上面的计算,具有20个匹配的描述字段的记录应该在该记录之后在名称字段中具有1个匹配的顶部。
如果有人为此提供解决方案,请提供
提前致谢。
答案 0 :(得分:0)
您可以使用boost attribute在索引时提升字段,也可以应用boost in the query,例如q=name:test*^50 OR description:test*
(此处还有一些more advanced features )。
我注意到,默认情况下,Lucene采用长度标准化,有效地权衡较短字段上的匹配比较长字段更重要。这听起来有点像你正在尝试重新创建。
如果您需要评分计算与您提供的评分一样简单,我相信您需要编写自己的Similarity class。