我正在开发一个平台,用户可以在其中组织集合中的项目。用户可以关注每个集合。之后,这些集合由Solr索引,并使其可搜索。我意识到,如果我使用一种非常简单的方法来提高集合名称(以及其中的项目名称),我得到的结果主要是带有很少数量项目的集合(这是正常的,因为单词池小得多=>相关性更高)。当然,这并不是我想要的。
我想要的是能够用我也在Solr中建立索引的另一个字段numItems来增强集合名称。
换句话说,不是name:query^3
,而是类似name:query^numItems
或更好的name:"query"^(numItems*numFollowers)
的东西
这可能吗?这是唯一的选择吗?想到的唯一另一件事是尝试按相同的参数对结果进行排序。
最佳答案
最简单的方法是通过schema.xml中的omitNorms
字段属性禁用主字段的长度规范化。
如果仍然需要微调计分,则可以使用函数查询。有关更多信息,请参见here,但是使用如上所述的简单增强功能的查询字符串的简短示例如下:
q={!boost b=(numItems*numFollowers)}query