加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Ruby on Rails 3应用程序中实现搜索?

发布时间:2020-12-16 21:46:58 所属栏目:百科 来源:网络整理
导读:我正在写我的第一个 Ruby on Rails应用程序,需要实现一个“搜索”功能.它将需要搜索数据库(3个不同表格中的每列1列),并在3个类别中的每一个中返回最相关的结果.类似于如何在Amazon.com上进行搜索,将返回所有不同部门的结果. 在Ruby on Rails世界中有没有宝石
我正在写我的第一个 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等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读