2013-12-11 408 views
4

我在Solr中进行模糊搜索,在极少数情况下,精确匹配的分数低于模糊匹配。我甚至发现使用debugQuery的一个原因:模糊匹配匹配了3个不同的单词,而精确匹配只匹配一个。因此,“三场比赛的总和”比一场比赛的价值更高。 Here是“解释”的一部分。Solr模糊匹配比精确匹配有更好的分数

即使在这种情况下,是否有任何方法可以配置Solr来排列高于模糊的精确匹配?

P.S.我已经使用omitTermFreqAndPositions="true" omitNorms="true",但是如果我们对不同的单词进行模糊匹配,它将无济于事。

+1

您是否在寻找特定的解决方案?这看起来不错。这就是为什么您需要使用模糊查询的OR查询来进行高级提升的精确匹配布尔查询,以便精确匹配的排名更高。 – Arun

+0

这看起来像有效的解决方案,我会这样做,如果我找不到另一个。但似乎这对Solr来说是双重工作,执行两次搜索。 – gray

回答

4

您需要使用模糊查询的布尔或查询来进行高级提升的精确匹配布尔查询,以便精确匹配排名更高。不要担心solr的双重工作。它是为非常复杂的Lucene查询树而构建的。使用查询组合来获得预期的相关性排名是常见做法。如果你同意pl。接受我的回答。

+0

嘿阿伦,什么答案+1,在5秒内解决了我的问题:) – Yavar

+0

谢谢阿伦,做了'ngramText:“sementes”或sementes',它的工作!为什么这不是Solr的默认设置? – brauliobo

+0

阿伦,实际上它没有正确工作。这样做实际上使得它返回所有搜索的所有结果,而不是将其限制为匹配:( – brauliobo