我有一个带Postgres后端的Rails应用程序。
我需要添加全文搜索,这将允许基于Levenshtein距离或其他类似指标的模糊搜索。添加词法分析器/词干分析器必须使用非英语单词这一事实(可以在lexing时关闭与语言相关的功能,而不是弄乱目标语言,这可能会使英语引擎认为有意义的单词无关紧要)。
我认为Postgres的研究不适用于此,因为它没有模糊搜索 - 如果我错了,请纠正我。
后端和后端的可能组合是什么?插件吗?它更喜欢在基础设施上添加较少的解决方案(例如,如果Postgres有模糊fts,为什么要使用外部Lucene); OTOH,Rails插件的质量也很重要。
你会推荐什么?
更新:好像我需要比Levenshtein更基于n-gram的指标。
答案 0 :(得分:6)
Rails + Postgres + Solr + Sunspot
Solr基于Lucene,因此您可以利用所有Lucene功能。 Sunspot是Solr API的优秀Ruby包装器。 Sunspot和Solr都适用于Rails和PostgreSQL,我在不超过一个月之前将它用于一个项目。
答案 1 :(得分:3)
PostgreSQL附带一个名为pg_trgm的扩展名(在contrib /目录中)。根据我的经验,它太慢了(更像是概念验证实现),但对于您的应用程序,它可能会起作用。
答案 2 :(得分:0)
texticle为Postgres提供beta模糊搜索。