ruby-on-rails - 如何在 Ruby on Rails 中进行全文搜索?

标签 ruby-on-rails full-text-search

我想在我的 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/

相关文章:

php - 关键字搜索表

ruby-on-rails - 在生产中监控 ruby​​ 后台进程(如 Resque)的正确方法

ruby-on-rails - 如何使用命令提示符在 Windows 7 上的 Sublime 中打开 ruby​​ gem?

ruby-on-rails - Rails 教程 : undefined local variable or method `static_pages_index_path' 中的 rspec 错误

ruby-on-rails - strftime - 是否修改该值?

ruby-on-rails - Rails 全文搜索 PostgreSql

php - MySQL全文搜索 boolean 模式混淆

java - 用 Java 实现邻近文本搜索

sql-server - SQL Server 全文搜索转义字符?

ruby-on-rails - 使用设计的 RESTful 登录(Rails 4)