3

我正在开发一个平台,用户可以在其中组织集合中的项目。用户可以关注每个集合。这些集合随后由 Solr 编制索引,并可供搜索。我意识到,如果我对集合名称(以及其中的项目名称)使用一种非常简单的提升,我得到的结果大多是具有非常少项目的集合(这是正常的,因为单词池小得多=>相关性更高)。当然,这并不是我想要的。

我想要的是能够使用我也在 Solr 中索引的另一个字段来提升集合名称,称为 numItems。

换句话说,而不是name:query^3, 得到类似的东西name:query^numItems,甚至更好name:"query"^(numItems*numFollowers)

这可能吗?这是唯一的选择吗?唯一想到的另一件事是尝试按相同的参数对结果进行排序。

4

1 回答 1

2

最简单的方法是通过omitNormsschema.xml 中的 field 属性禁用主字段的长度规范化。

如果您仍需要微调评分,可以使用函数查询。有关更多信息,请参见此处,但使用上面描述的简单提升的查询字符串的简短示例是:

q={!boost b=(numItems*numFollowers)}query
于 2013-03-24T15:11:51.380 回答