【问题标题】:rails - Search Controllerrails - 搜索控制器
【发布时间】:2011-04-30 13:34:12
【问题描述】:

我正准备在我的应用中构建搜索功能。我希望搜索能够跨越多个模型。

我正在考虑添加一个搜索控制器,然后它会根据设置等决定要搜索的模型...

你怎么看?搜索控制器听起来是否正确,或者有什么我应该考虑的开源?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 pg-search


    【解决方案1】:

    我会说避免滚动您自己的搜索“引擎”,除非您有一个非常具体的需求,而 Sphinx 之类的东西无法满足(另请阅读 this)

    【讨论】:

    • 谢谢。我从来没有听说过狮身人面像,听起来很神奇。遗憾的是 Heroku 不支持 Sphinx。必须有办法让您为他们的 $$$ 搜索服务付费。
    • 您可能会发现这也很有帮助:stackoverflow.com/questions/2166378/…
    【解决方案2】:

    您有几个选项可以在 ruby​​ 世界中进行搜索,例如

    1. 狮身人面像
    2. 雪貂
    3. 解决方案
    4. 恩德卡

    浏览 heroku 的文档后,heroku 建议使用 solr,这是一个很棒的搜索引擎。 http://docs.heroku.com/websolr 和 http://docs.heroku.com/full-text-search 详细介绍了有关此的更多信息。我们在其中一个项目中选择了 solr 进行搜索,我们使用了 sunspot_rails,它可以很好地与您的模型集成,并在您的内容发生变化时重新索引。我们使用了来自 http://github.com/outoftime/sunspot 的 gem sunspot_rails,这也是 heroku 推荐的。

    需要注意的是,heroku 的文件系统是只读的,不允许您运行任意进程,因此您必须选择像 websolr(每月 20 美元起)或生成您自己的亚马逊 ec2 实例并进行索引那里。由于 heroku 也在亚马逊 ec2 上运行,因此延迟非常小。

    回到替代方案,众所周知,Ferret 经常在生产中崩溃/损坏索引。 Heroku 不支持 Sphinx。 Endeca 太贵了,你必须花费大部分预算才能获得基本效果。

    【讨论】:

      【解决方案3】:

      如果你使用 Postgres,你可以使用pg_search gem

      【讨论】:

        猜你喜欢
        • 2014-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多