通过其他(数值)字段的价值来提高某个字段的相关性

3
我正在开发一个平台,用户可以在其中组织集合中的项目。每个集合都可以被用户关注。这些集合随后被Solr索引,并且可以被搜索。我意识到,如果我对集合名称(以及其中的项目名称)使用非常简单的加权方式,那么我得到的结果大多是具有非常少量项目的集合(这很正常,因为单词池要小得多 => 关联性更高)。当然,这不是我想要的。
我想要的是能够用另一个我也在Solr中索引的字段numItems来增强集合名称。
换句话说,不要使用name:query^3,而要使用类似name:query^numItems,甚至更好的是name:"query"^(numItems*numFollowers) 这可行吗?这是唯一的选择吗?唯一让我想到的是尝试按相同的参数对结果进行排序。
1个回答

2
最简单的方法是通过 schema.xml 中 omitNorms 字段属性禁用主字段的长度标准化。
如果您仍需要微调评分,可以使用函数查询。有关更多信息,请参见此处,但一个使用类似上述简单增强的查询字符串的简短示例如下:
q={!boost b=(numItems*numFollowers)}query

我认为那会起作用。明天我会试一下看是否有帮助,然后将其标记为被接受的答案。 - Preslav Rachev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接