我在Solr中做了一个模糊搜索,在很少的情况下,精确匹配的分数低于模糊匹配。我甚至发现了使用debugQuery的原因:模糊匹配匹配了3个不同的单词,而精确匹配只匹配了一个。因此,“3的和”比1的值更高。这里是“解释”的一部分。
即使在这种情况下,也有任何方法可以配置Solr来对精确匹配进行排序吗?
我已经用过omitTermFreqAndPositions="true" omitNorms="true"
了,但是如果我们对不同的词有模糊的匹配,那就没有用了。
发布于 2013-12-12 14:01:13
您需要执行精确匹配的布尔查询和模糊查询的布尔或查询,这样才能使精确匹配级别更高。不要担心solr的双重工作。它是为非常复杂的Lucene查询树构建的。使用组合查询来获得预期的相关性排名是一种常见的做法。如果你同意的话。接受我的回答。
发布于 2019-07-01 17:05:55
我有一个类似的问题,并解决了这个问题使用copyField
和进行精确和模糊(在我的情况下)匹配在不同的领域。
然后利用EdisMax
的qf
场对精确场上的匹配和模糊匹配上的匹配赋予更高的权重。
https://stackoverflow.com/questions/20526342
复制相似问题