我们正在将我们收集的所有内容合并到单个内容字段的记录中,这是 SOLR 的主要来源。问题是,对于某些记录,内容字段只有 100K 个字符,而对于其他记录,则为 10M 或更多。
结果,对任何词条的搜索都会将 1000 万个字符记录推到结果列表的顶部。
我们想通过引入诸如“相对词频”之类的东西来限制/平衡这一点,例如出现的次数除以内容字段中的单词总数。由于我们不知道人们会搜索哪些术语,(我认为)我们无法在索引时计算这一点。
关于如何做到这一点的任何建议/想法?
我们正在将我们收集的所有内容合并到单个内容字段的记录中,这是 SOLR 的主要来源。问题是,对于某些记录,内容字段只有 100K 个字符,而对于其他记录,则为 10M 或更多。
结果,对任何词条的搜索都会将 1000 万个字符记录推到结果列表的顶部。
我们想通过引入诸如“相对词频”之类的东西来限制/平衡这一点,例如出现的次数除以内容字段中的单词总数。由于我们不知道人们会搜索哪些术语,(我认为)我们无法在索引时计算这一点。
关于如何做到这一点的任何建议/想法?
您可以从自定义相似性类开始。
这将允许您修改上述参数和评分因素。
您需要检查tf
(词频)方法并对其进行自定义。
可以从 Schema.xml 文件中引用自定义相似性类。
检查lucene DefaultSimilarity类以供参考,这是实际的实现。
还要检查更改相似性