ruby-on-rails – 在Ruby on Rails 3应用程序中实现搜索?
我正在写我的第一个
Ruby on Rails应用程序,需要实现一个“搜索”功能.它将需要搜索数据库(3个不同表格中的每列1列),并在3个类别中的每一个中返回最相关的结果.类似于如何在Amazon.com上进行搜索,将返回所有不同部门的结果.
在Ruby on Rails世界中有没有宝石/图书馆/常见技术,我应该知道(与Rails 3一起使用)?否则,为了在我的应用程序中实现搜索功能,该怎么办? 解决方法
我认为这取决于你对你的搜索有多严重.
如果您只想搜索一些简单的VARCHAR字段,您可以通过生成一些“LIKE”%xyz%“语句来手动执行此操作,而不仅仅是您需要的是一个为您提供的插件.我最喜欢的是searchlogic.它在您的模型中可以使用相当多的方便的动态范围,您可以链接在一起(如其他范围).例如你可以写这样的东西: User.last_name_like("Doe").age_gt(30).age_lt(40) 这是一个关于如何使用其他功能的great screencast. 但SQL LIKE语句并不适合在大块文本中搜索.所以如果这是你需要的,你最好使用一个实际索引数据的插件. 在这种情况下,thinking sphinx(在其他答案中提到)是一个很好的解决方案.请记住,它需要一些平台特定的安装步骤,并且仅适用于PostreSQL和MySQL(它不适用于Rails的默认SQLite).使用它也不是那么简单 – 您需要定义要搜索的每个模型索引的内容,构建索引,启动Sphinx等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |