Слой web2py Database Abstraction не поддерживает SOLR в настоящее время, что означает, что вы не можете использовать синтаксис DAL для доступа к SOLR и не можете использовать автоматически сгенерированные формы из схемы SOLR DB. Тем не менее, вы можете создавать формы, используя SQLFORM.factory, как если бы у вас была обычная реляционная база данных, и выполнить вставку / обновление / выбор / обновление в SOLR вручную. web2py включает в себя библиотеки для синтаксического анализа / записи как JSON, так и XMl, так что будет легко реализовать API SOLR в несколько строк кода. Если вы сообщите об этом в списке рассылки 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 и дополнительных
строка после принимает. Вот и все.