我在默认Solr评分算法中遇到了问题,这与我的收集领域有关。在我的领域中,包含所有查询词或大多数查询词的文档比仅包含少量词语的文档更相关。我希望提高文档的得分,使匹配的词越多,得分越高。我知道solr已经通过乘以协调因子来提高此类文档的权重。然而,协调因子对我来说不够显著,我希望将其提高到一定的程度。我还熟悉ExtendedDismax解析器的Minimum-Should-Match功能,但该功能无法解决我的问题,因为我不想消除未匹配足够词语的文档,我只想“惩罚”它们。
是否有一种方法可以增加协调因子的重要性?如果能解决问题,我也会接受其他不使用协调因子的解决方案。
SchemaSimilarityFactory
将自定义相似性应用于一个字段,将默认相似性应用于另一个字段,并查询正确的字段,B-直接访问IndexSearcher
,在运行查询之前可以访问相似性(类似于indexSearcher.getSimilarity().setCoordBoostFactor(2); indexSearcher.search(query);
),C-后处理,这可能只适用于文档相对较短且查询相对简单的情况。 - femtoRgon