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

前端之家收集整理的这篇文章主要介绍了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(在其他答案中提到)是一个很好的解决方案.请记住,它需要一些平台特定的安装步骤,并且仅适用于PostresqlMysqL(它不适用于Rails的默认sqlite).使用它也不是那么简单 – 您需要定义要搜索的每个模型索引的内容,构建索引,启动Sphinx等.

原文链接:https://www.f2er.com/ruby/266864.html

猜你在找的Ruby相关文章