3

我有一個Postgres後端的Rails應用程序。建議需要:Rails的,Postgres的和模糊全文搜索

我需要添加全文搜索,這將允許基於Levenshtein距離或其他類似指標的模糊搜索。添加詞法分析器/詞幹分析器必須處理非英語單詞的事實(只要在搜索時關閉語言相關功能就可以了,不要混淆目標語言,而英語引擎認爲這些詞語可能有意義的詞語是無關緊要的)。

我想,因爲它不具有模糊搜索Postgres的TSEARCH不會在這裏適用 - 請糾正我,如果我錯了。

什麼是後端&插件可能的組合?它希望更喜歡那些增加基礎設施的解決方案(例如,如果Postgres可能有模糊的fts,爲什麼要使用外部的Lucene); OTOH,所涉及的Rails插件的質量也很重要。

你會推薦什麼?

更新:似乎我需要比Levenshtein更基於n-gram的度量。

回答

6

的Rails + +的Postgres的Solr +太陽黑子

Solr基於Lucene的,所以你可以充分利用所有Lucene的功能。 Sunspot是Solr API的極好的Ruby包裝器。 Sunspot和Solr都能很好的與Rails和PostgreSQL一起工作,我在不到一個月前就將它用於一個項目。

+0

你能告訴總之,究竟是使用過的Solr Lucene的普通的好處? – 2009-12-11 21:31:07

+0

基本上,使用Solr你可以在網絡上使用Lucene。見http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Introduction-Apache-Lucene-and-Solr – 2009-12-13 23:39:07

3

的PostgreSQL帶有稱爲pg_trgm的延伸(在contrib /目錄)。根據我的經驗,它太慢了(更像是一個概念驗證實現),但對於你的應用程序來說它可能工作。

0

texticle提供了Postgres的測試模糊搜索。