2008-09-03 50 views
14

你能推薦一些輕量級的模糊文本搜索庫嗎?輕量級模糊搜索庫

我想要做的是讓用戶找到正確的數據與搜索字詞拼寫錯誤。

我可以使用像Lucene這樣的全文搜索引擎,但我認爲這是一種矯枉過正。

編輯:
爲了讓這裏的問題更加清晰是該庫主要情況:
我有一個字符串的大名單。我希望能夠在這個列表中進行搜索(類似MSVS的intellisense),但應該可以通過字符串來過濾這個列表,但它不在列表中,但足夠接近列表中的某個字符串。
例子:

  • 綠色

當我在文本框中鍵入「格倫」或「吉恩」,我希望看到「綠色」的結果組。

索引數據的主要語言爲英語。

我認爲Lucene會爲這項任務付出沉重的代價。

更新

我發現一個產品匹配我的要求。它是ShuffleText
你知道任何替代品嗎?

回答

1

Soundex在編碼方面非常「英語」 - Daitch-Mokotoff對許多名字,特別是歐洲(日耳曼語)和猶太名字的作用更好。在我以英國爲中心的世界裏,這就是我使用的。

Wiki here

3

Lucene具有很高的可擴展性—這意味着它也適用於小應用程序。如果這是您所需要的,您可以非常快速地在內存中創建索引。

對於模糊搜索,你真的需要決定你想使用什麼算法。隨着信息檢索,我成功地使用了Lucene的n-gram技術。但這是一種特殊的索引技術,本身不是「庫」。

不知道更多關於您的應用程序,推薦合適的庫不是一件容易的事情。你在搜索多少數據?數據是什麼格式?數據多久更新一次?

1

嘗試將基於Lucene API的Walnutil集成到SQL Server和Oracle DB中。您可以創建任何類型的索引,然後使用它。對於簡單搜索,您可以使用walnutilsoft的一些方法,對於更復雜的搜索情況,您可以使用Lucene API。請參閱基於web的示例,其中使用了從Walnutil Tools創建的索引。你也可以看到一些用Java和C#編寫的代碼示例,你可以使用它來創建不同類型的搜索。 這個工具是免費的。 http://www.walnutilsoft.com/

0

功能強大,重量輕的解決方案是sphinx

它比Lucene小,它支持消歧。

它是用C++編寫,它的速度快,經過實戰檢驗,有圖書館,每env和它是由大公司使用,像craigslists.org