web2py データベース抽象化レイヤーは、現時点で SOLR をサポートしていません。つまり、SOLR へのアクセスに DAL 構文を使用できず、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
あなたの場合、web2py DAL は SOLR をサポートしておらず、スキーマからフォームを生成できないため、define_table を使用しませんが、これをインストールすることができます: 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 ではなく SQLFORM.factory であり、accepts の後の余分な行です。それだ。