Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RubyonRails中搜索_Ruby On Rails_Ruby_Search_Full Text Search - Fatal编程技术网

Ruby on rails 在RubyonRails中搜索

Ruby on rails 在RubyonRails中搜索,ruby-on-rails,ruby,search,full-text-search,Ruby On Rails,Ruby,Search,Full Text Search,我有一个小网站,每天有大约500张照片和150名访客,它是在Dreamhost上托管的。我想添加一个简单的搜索引擎,它不需要运行共享主机上不允许的长时间进程 搜索引擎应该处理属于不同模型的不同字段:Photo、Photo.author.name、Photo.comments.content和许多其他字段 有什么插件可以帮助您吗?扮演雪貂的角色很可能会很好地为您服务 但是我不知道Ferret是否以及如何在像您这样的设置中运行。MySQL的全文搜索功能通常在任何共享主机环境中都可以使用,这是

我有一个小网站,每天有大约500张照片和150名访客,它是在Dreamhost上托管的。我想添加一个简单的搜索引擎,它不需要运行共享主机上不允许的长时间进程

搜索引擎应该处理属于不同模型的不同字段:Photo、Photo.author.name、Photo.comments.content和许多其他字段


有什么插件可以帮助您吗?

扮演雪貂的角色
很可能会很好地为您服务


但是我不知道Ferret是否以及如何在像您这样的设置中运行。

MySQL的全文搜索功能通常在任何共享主机环境中都可以使用,这是添加此类功能的好方法。唯一的缺点是,它只适用于MyISAM表,而InnoDB通常不支持MyISAM表

我所看到的工作方法,其中一个很好的例子是Wikipedia数据库体系结构,是专门为搜索目的创建模型记录的派生副本。这些需要与主记录保持同步,但这可以通过after_save处理程序或简单的SQL update语句轻松实现

需要注意的是,ActiveRecord不能理解全文索引。需要一个相当难看的扩展才能使其合作,尽管我确实有一个例子捆绑在MySQL黑客的集合中:


您可能需要查看Sphinx/Thinking Sphinx,以实现快速全文搜索


我不知道安装Unix软件包和整个过程对于您在Dreamhost上寻找的东西来说是否过火了,但这是一个非常快速和健壮的解决方案,将在将来很好地满足您的需要。

Ferret或sphinx将需要专门的后台过程。您唯一的选择似乎是使用适当索引的mysql全文搜索。

Rails至少有3个全文搜索引擎:

  • +
哪一个是最好的选择?视情况而定。
您可以阅读sphinx和ferret之间的比较,包括Engine Yard的评论。

我认为该插件是满足您需求的最佳选择。它不需要单独的服务器;它在文件系统中自动创建索引。在一个与您类似的站点上,它非常快速且易于配置。

我的印象是Ferret作为后台进程运行。有人知道Ferret是否需要后台进程吗?您需要在生产中运行DRb服务器。雪貂是个废物,你应该找些没有那么多问题的东西。