我想在我的 Ruby on Rails 应用程序中对数据进行全文搜索。有哪些选择?
最佳答案
有多种选择,每种都有不同的优势和劣势。如果您想添加全文搜索,明智的做法是对每个搜索进行一点调查并尝试一下,看看它在您的环境中是否适合您。
MySQL 内置了对全文搜索的支持。它具有在线支持,这意味着当新记录被添加到数据库时,它们会被自动编入索引并在搜索结果中可用。 documentation有更多细节。
acts_as_tsearch
为 PostgreSQL 的最新版本提供了类似内置功能的包装器。
对于其他数据库,您将不得不使用其他软件。
Lucene是用 Java 编写的流行搜索提供程序。您可以通过其搜索服务器使用 Lucene Solr使用 Rails acts_as_solr
.
如果您不想使用 Java,可以使用名为 Ferret 的 Lucene 到 Ruby 的端口。 .使用 acts_as_ferret
添加对 Rails 的支持插件。
Xapian是另一个不错的选择,Rails 支持使用 acts_as_xapian
插件。
最后,我的首选是Sphinx使用 Ultrasphinx插件。它非常快,并且有很多关于如何索引和搜索数据库的选项,但不再被积极维护。
Sphinx 的另一个插件是 Thinking Sphinx其中有很多正面feedback .使用 Thinking Sphinx 比 Ultrasphinx 更容易上手。我建议调查这两个插件以确定哪个更适合您的项目。
关于ruby-on-rails - 如何在 Ruby on Rails 中进行全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47656/