2013-12-11 207 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