【问题标题】:What's the most productive frontend framework to use with SOLR as the backend?将 SOLR 用作后端的最高效的前端框架是什么?
【发布时间】:2011-04-07 12:51:17
【问题描述】:

想要构建一个使用 SOLR 作为唯一后端的网络应用程序。大多数数据将通过离线作业存储在 SOLR 中,尽管有一些 CRUD 的需求。

看看当今流行的 Web 框架,如 Rails、Django、web2py 等。尽管使用 NoSQL,生产力的最佳点似乎仍然是围绕在 RDBMS 之上的活动记录实现。

就生产力而言,以 SOLR 作为后端构建 Web 应用程序的最佳框架是什么?

【问题讨论】:

    标签: ruby-on-rails django frameworks solr web2py


    【解决方案1】:

    顺便说一句,SphinxSearch 比 solr/lucence 快得多,并且有许多独特的功能。此外,与我的经验和独立基准相比,搜索准确性要好得多。

    它具有原生的、非常简单的 python api,并且与 web2py 很好地集成。

    但它需要一个 RDBMS。我正在使用它,web2py + sphinxsearch,构建一个办公文件搜索引擎。

    你也可以试试。

    www.sphinxsearch.com

    【讨论】:

      【解决方案2】:

      web2py 数据库抽象层目前不支持 SOLR,这意味着您不能使用 DAL 语法来访问 SOLR,也不能使用从 SOLR DB 模式自动生成的表单。然而,您可以使用 SQLFORM.factory 生成表单,就好像您有一个普通的关系数据库并手动执行插入/更新/选择/更新到 SOLR 中一样。 web2py 包含用于解析/编写 JSON 和 XMl 的库,因此只需几行代码即可轻松实现 SOLR API。如果您在 web2py 邮件列表中提出此问题,我们可以提供一些示例。

      编辑(从 web2py 邮件列表上的答案复制):

      通常在 web2py 中你定义一个模型

      db.define_table('message',Field('body'))
      

      然后 web2py 为您生成和处理表单:

      form=SQLFORM(db.message)
      if form.accepts(request.vars):
            do_something
      

      在您的情况下,您不会使用 define_table 因为 web2py DAL 确实 不支持 SOLR 并且您不能从模式生成表单,但是您 可以安装这个:http://code.google.com/p/solrpy/ 你可以这样做

      #in model
      import solr
      s = solr.SolrConnection('http://example.org:8083/solr')
      
      #in controller
      form=SQLFORM.factory(Field('body'))
      if form.accepts(request.vars):
            s.add(mody=request.vars.body)
            s.commit()
            do_something
      

      所以区别是 SQLFORM.factory 而不是 SQLFORM 和额外的 接受后行。这就对了。

      【讨论】:

      • 太棒了 - 会这样做 /me 对 mdipierro 对 web2py 相关问题的响应速度感到惊讶;)
      【解决方案3】:

      以上三个答案都是对开发框架的重要建议。我会绕过你的问题,问“哪个是最适合我的 web 应用程序框架”,而不是“哪个最适合 Solr”,并根据你的技能、你周围的社区和其他软因素做出决定。特别是如果您完全不知道该走哪条路。

      如果您有喜欢 Grails 并且可以帮助您入门的朋友,那么 Grails 可能是您的最佳选择。有一个定期开会的 Python 小组吗?然后 Django 可以提供很多东西。我个人喜欢 Rails,所以我会推荐 Rails。但这只是“我喜欢什么”与“什么是最好的”的建议。

      Solr 的美妙之处在于它与前端的无关性。它在很多环境中都很好玩!

      【讨论】:

        【解决方案4】:

        我会使用 Sunspot 1.2 和 Rails 3。

        Sunspot 通常用作 ActiveRecord 扩展,但也被设计为与 ORM 无关。 Rails 3 已将 ActiveRecord 从框架中解耦,从而轻松实现完全无 ORM。

        http://outoftime.github.com/sunspot/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-06
          • 2022-06-16
          • 1970-01-01
          • 2016-02-04
          • 2020-09-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多