【问题标题】:Adding Search to Ruby on Rails - Easy Question向 Ruby on Rails 添加搜索 - 简单问题
【发布时间】:2010-12-18 01:52:19
【问题描述】:

我想弄清楚如何将搜索添加到我的 rails 应用程序。我是全新的所以慢慢来。我创建了一个博客并进行了很多定制,包括添加一些 AJAX,到目前为止我为自己感到非常自豪。我很难找到有关如何添加此功能的任何好的教程。基本上我只想启用完整搜索来搜索我的帖子表。最简单的方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby search full-text-search


    【解决方案1】:

    Thinking Sphinx 上有一个很棒的 Railscast,这是我最喜欢的其他提到的选项。它快速、简单,而且是continually being developed

    还有SearchLogic,如果您真的不需要全文索引(您可能不需要博客),这非常棒。还有一个Railscast 来配合。

    【讨论】:

    • 嗨,本西!喜欢你古老的答案;)
    【解决方案2】:

    最简单的方法是这样做:

    results = Post.find(:all, :conditions => "post_body LIKE '%#{search_string}%'" )

    但是,这非常有限,因为它只会搜索您正在寻找的确切单词或短语(更不用说 SQL 注入漏洞)。正如我所提到的,这是进行搜索的“最简单”的方式,但绝对不是最好的。如果你想认真做这件事,我会考虑使用acts_as_solr。

    【讨论】:

    • 如果你想保持这么简单,至少试试 :conditions => ["post_body LIKE '%?%'", search_string] 至少可以保护你免受 SQL 注入漏洞的影响:-)
    【解决方案3】:

    根据您使用的 RDBMS,可能有一个用于全文搜索的内置解决方案。

    否则,您可以查看使用 Apache Solr 进行全文搜索且易于使用的 Sunspot(和 Rails plugin)。尤其是编写查询/搜索比使用标准的acts_as_solr 插件有趣得多。

    编辑哦,这是 视觉人士screencast on Sunspot

    【讨论】:

    • 我试过 Sphinx、Ferret 和 Solr,我必须说 Sunspot + Solr 是最好的搭配。
    【解决方案4】:

    我建议使用acts_as_solr 插件。我也刚开始使用 Rails,这是我的教授推荐的搜索索引插件。它在插件中包含 SOLR 搜索引擎。该网站包含安装和使用说明。

    基本上,正如用法所示,您只需将acts_as_solr 标签包含在您希望可搜索的任何模型中,然后指定您希望为搜索建立索引的模型中的哪些属性......所以你会做类似:

    class Post < ActiveRecord::Base
        acts_as_solr :fields => [:post, :comments, :whatever]
    

    对于搜索,你会做类似...

        Post.find_by_solr(query_string)
    

    【讨论】:

    • 由于acts_as_solr 不再维护(作为它的事实上的维护者),我不推荐使用它。对于 Solr,Sunspot 是一个更好的选择。
    猜你喜欢
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    相关资源
    最近更新 更多