需要推荐:Rails、Postgres 和模糊全文搜索

发布于 2024-08-14 05:07:43 字数 420 浏览 13 评论 0原文

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

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

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

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

你会推荐什么?

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

I have Rails app with a Postgres backend.

I need to add full text search which would allow fuzzy searches based on Levenshtein distance or other similar metrics. Add the fact that the lexer/stemmer has to work with non-English words (it would be ok to just switch language-dependent features off when lexing, to not mess with the target language which may have meaningful words considered by English engine as irrelevant).

I guess Postgres' tsearch won't apply here as it doesn't have fuzzy search -- please correct me if I'm wrong.

What are possible combinations of backends & plugins? It'd like to prefer solutions which add less to the infrastructure (eg. if Postgres can have fuzzy fts, why use external Lucene); OTOH, the quality of Rails plugins involved is important as well.

What would you recommend?

update: seems like I'd need rather n-gram based metrics than Levenshtein.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Smile简单爱 2024-08-21 05:07:43

Rails + Postgres + Solr + Sunspot

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

Rails + Postgres + Solr + Sunspot

Solr is based on Lucene so you can take advantage of all Lucene features. Sunspot is an excellent Ruby wrapper for Solr API.
Both Sunspot and Solr work great with Rails and PostgreSQL, I used it for a project no more than one month ago.

骑趴 2024-08-21 05:07:43

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

PostgreSQL comes with an extension called pg_trgm (in the contrib/ directory). In my experience, it is too slow (more like a proof-of-concept implementation), but for your application it might work.

这个俗人 2024-08-21 05:07:43

texticle 为 Postgres 提供 beta 模糊搜索。

texticle offers beta fuzzy search for Postgres.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文