2011-08-19 23 views
0

我已經用solr索引了一個站點。如果啓用未啓用,它工作得非常好。然而,使用詞幹,solr在搜索詞的根時不會返回任何匹配。我使用瑞典詞幹。當啓用詞幹時,搜索根詞沒有命中

例如,搜索support如果不使用所產生給人命中。使用詞幹,搜索support不會產生命中。儘管如此,搜索supporten會返回匹配support的匹配結果。

通過調試查詢,我可以看到,它的莖字supportsuppor(這是由不正確的方式,但是這不應該的問題)。然而,讓這個詞產生於suppor,我希望它能夠搜索與原始查詢詞相匹配的詞。

我很感激任何幫助!

回答

0

據我所知,沒有辦法制止時保留原詞...

我假設你正在使用solr.SnowballPorterFilterFactory。雪球算法過於激進。

你應該嘗試Hunspell stemmer也許solr.SwedishLightStemFilterFactory

0

您可以做的解決方法是將您的查詢重新格式化爲「support support *」或「support support〜」。 *是通配符匹配,〜是使用Lucene語法的模糊匹配。我知道你沒有提到需要做通配符和模糊搜索,但是在這些情況下我發現,查詢詞幹不會生效,所以「支持」被保留下來。第一個詞的詞幹仍然有效,所以如果有的話,兩個結果都會被返回。另外,模糊搜索將有助於減少用戶查詢中拼寫錯誤的容忍度,所以它是一個額外的好處。