3

我有带有 Postgres 后端的 Rails 应用程序。

我需要添加全文搜索,这将允许基于 Levenshtein 距离或其他类似指标的模糊搜索。添加词法分析器/词干分析器必须使用非英语单词的事实(可以在词法分析时关闭与语言相关的功能,以免与目标语言混淆,因为目标语言可能具有被英语引擎认为不相关的有意义的单词)。

我猜 Postgres 的 tsearch 在这里不适用,因为它没有模糊搜索——如果我错了,请纠正我。

后端和插件的可能组合是什么?它更喜欢对基础设施添加较少的解决方案(例如,如果 Postgres 可以有模糊 fts,为什么要使用外部 Lucene);OTOH,所涉及的 Rails 插件的质量也很重要。

你会推荐什么?

更新:似乎我需要基于 n-gram 的指标而不是 Levenshtein。

4

3 回答 3

6

Rails + Postgres + Solr + Sunspot

Solr基于 Lucene,因此您可以利用所有 Lucene 功能。Sunspot是 Solr API 的优秀 Ruby 包装器。Sunspot 和 Solr 都可以很好地与 Rails 和 PostgreSQL 配合使用,我在一个多月前的项目中使用了它。

于 2009-12-11T20:09:17.440 回答
3

PostgreSQL 带有一个名为pg_trgm的扩展(在 contrib/ 目录中)。根据我的经验,它太慢了(更像是概念验证实现),但对于您的应用程序来说它可能会起作用。

于 2009-12-20T06:29:51.260 回答
0

texticle为 Postgres 提供 beta 模糊搜索。

于 2011-03-29T15:58:17.727 回答