想要使用SOLR构建一个Web应用程序作为 only 后端。大多数数据将通过离线作业存储在SOLR中,尽管需要CRUD。
今天看看流行的Web框架,如Rails,Django,web2py等,尽管NoSQL,生产力的最佳位置似乎仍然是围绕RDBMS的活跃记录实现。
在生产力方面,以SOLR作为后端构建Web应用程序的最佳框架是什么?
答案 0 :(得分:2)
此时web2py数据库抽象层不支持SOLR,这意味着您无法使用DAL语法访问SOLR,也无法使用SOLR数据库架构中自动生成的表单。然而,如果您有一个普通的关系数据库并且手动执行插入/更新/选择/更新到SOLR,您可以使用SQLFORM.factory生成表单。 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和额外的 接受之后的行。这就对了。
答案 1 :(得分:2)
上述三个答案都是对开发框架的重要建议。我会翻阅你的问题并问“哪个是我最好的网络应用程序框架”,而不是“哪个最适合Solr”并根据你的技能,你周围的社区以及其他软因素做出决定。特别是如果你完全不知道要走哪条路。
如果您有喜欢Grails的朋友并且可以帮助您入门,那么Grails可能就是您的选择。有一个定期会面的Python小组吗?然后Django有很多东西可以提供。我个人喜欢Rails,所以我推荐使用rails。但这只是“我喜欢什么”与“什么是最好”的推荐。
Solr的精彩之处在于它对前端的不可知性。它在很多环境中都很好用!
答案 2 :(得分:1)
我会使用Sunspot 1.2和Rails 3。
太阳黑子通常用作ActiveRecord扩展,但也设计为与ORM无关。 Rails 3将ActiveRecord与框架分离,使得完全无ORM变得容易。
答案 3 :(得分:0)
顺便说一句,SphinxSearch比solr / lucence和许多独特的功能快得多。与我的经验和独立基准相比,搜索准确性也要好得多。
它有原生的,非常简单的python api,它与web2py很好地集成。
但它需要一个RDBMS。我正在使用它,web2py + sphinxsearch,构建办公室文件搜索引擎。
你也可以尝试一下。
www.sphinxsearch.com