我有一个带有 Postgres 后端的 Rails 应用程序。
我需要添加全文搜索,这将允许基于 Levenshtein 距离或其他类似指标的模糊搜索。添加词法分析器/词干分析器必须处理非英语单词的事实(在词法分析时关闭与语言相关的功能就可以了,不要混淆目标语言,因为目标语言可能包含被英语引擎认为无关紧要的有意义的单词).
我猜 Postgres 的 tsearch 不会在这里应用,因为它没有模糊搜索——如果我错了请纠正我。
后端和插件的可能组合是什么?它更喜欢对基础设施添加较少的解决方案(例如,如果 Postgres 可以有模糊的 fts,为什么要使用外部 Lucene); OTOH,所涉及的 Rails 插件的质量也很重要。
你会推荐什么?
更新:似乎我需要基于 n-gram 的指标而不是 Levenshtein。
最佳答案
Rails + Postgres + Solr + Sunspot
Solr基于 Lucene,因此您可以利用 Lucene 的所有功能。 Sunspot是 Solr API 的优秀 Ruby 包装器。 Sunspot 和 Solr 与 Rails 和 PostgreSQL 配合得很好,不到一个月前我在一个项目中使用了它。
关于ruby-on-rails - 推荐需要 : Rails, Postgres 和模糊全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1889981/