2010-06-04 89 views
1

我想使用Solr在我的mysql數據庫中搜索線程。使用Solr匹配包含相似單詞的單詞嗎?

但我希望它不只是搜索線程的話,但類似的話。

例如,如果主題標題是「待售狗」,並且用戶搜索狗,則標題將出現在結果中。

並且如果用戶搜索「mac os x」,則會出現單詞「snow leopard」。

和鏈接應用程序認爲與之相關的詞的能力例如。房子和公寓。

這種邏輯是如何完成的?

我知道你可以用solr在你創建/添加的字典文件中查找單詞,所以solr會查找狗並查看有關的單詞(例如狗)。

但你在哪裏找到這樣的字典?

我不知道這種實現。

請把我指向正確的方向。

感謝

回答

2

我認爲你必須建立這樣一個字典自己,因爲它是非常專用。 「House」和「Apartment」可能與您的應用程序類似,但在另一個應用程序中很遙遠。

一旦你有了這本詞典,你可以通過SynonymFilterFactory來使用它。

當用戶搜索「狗」時,匹配「狗」由stemmer管理,不需要任何字典。

+0

但是其他語言如何呢?瑞典?那裏複數形式不僅僅是添加「s」,而是添加:「ar」,「或」,「呃」,有時什麼也不是。 Solr怎麼會知道這個?詞幹只是英文? – 2010-06-05 19:35:45

+1

@fayer:「Solr包括支持通過solr.SnowballPorterFilterFactory遏制瑞典語,而Lucene包含一個示例性的停止詞列表。」 http://wiki.apache.org/solr/LanguageAnalysis#Swedish – 2010-06-05 20:16:05

1

您可以使用synonym.txt文件並創建自己的字典。

您的另一種選擇可能是模糊搜索。

+0

我不認爲你可以找到「公寓」模糊搜索「房子」 – 2010-06-05 20:15:37

+0

這是真的。但最初的問題是:「我想用Solr在我的mysql數據庫中搜索線程,但是我希望它不只是搜索線程字,而是用於類似的單詞。」 同義詞是一種選擇... – Karussell 2010-06-05 21:05:27