我想在Ruby on Rails应用程序中对数据进行全文搜索.有哪些选择?
有几种选择,每种都有不同的优点和缺点.如果您想添加全文搜索,那么仔细研究每一个并尝试它们以了解它在您的环境中对您的效果是多么谨慎.
MySQL内置了对全文搜索的支持.它具有在线支持,这意味着当新记录添加到数据库时,它们会自动编入索引并在搜索结果中可用.该文档有更多的细节.
acts_as_tsearch
为最新版本的PostgreSQL提供类似内置功能的包装器
对于其他数据库,您必须使用其他软件.
Lucene是一个用Java编写的流行搜索提供程序.您可以通过其搜索服务器Solr with Rails 使用Lucene acts_as_solr
.
如果你不想使用Java,有一个Lucene到Ruby的端口叫做Ferret.使用acts_as_ferret
插件添加对Rails的支持.
Xapian是另一个不错的选择,并且在使用该acts_as_xapian
插件的Rails中受支持.
最后,我首选的是使用Ultrasphinx插件的Sphinx.它非常快,并且有很多关于如何索引和搜索数据库的选项,但不再被主动维护.
Sphinx的另一个插件是Thinking Sphinx,它有很多积极的反馈.使用Thinking Sphinx比使用Ultrasphinx更容易.我建议调查两个插件,以确定哪个更适合您的项目.
我可以推荐Sphinx.瑞恩·贝茨有一个伟大的截屏上使用思维斯芬克斯插件创建一个全文检索解决方案.
你可以使用Ferret(用Ruby编写的Lucene).它使用acts_as_ferret mixin与Rails无缝集成.看看" 如何将雪貂与Rails集成 ".另一种选择是Sphinx.