Ruby on rails 在RubyonRails中搜索
我有一个小网站,每天有大约500张照片和150名访客,它是在Dreamhost上托管的。我想添加一个简单的搜索引擎,它不需要运行共享主机上不允许的长时间进程 搜索引擎应该处理属于不同模型的不同字段:Photo、Photo.author.name、Photo.comments.content和许多其他字段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的全文搜索功能通常在任何共享主机环境中都可以使用,这是
有什么插件可以帮助您吗?
扮演雪貂的角色
很可能会很好地为您服务
但是我不知道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服务器。雪貂是个废物,你应该找些没有那么多问题的东西。