Какой самый продуктивный каркас внешнего интерфейса для использования с SOLR в качестве бэкэнда? - PullRequest
4 голосов
/ 02 сентября 2010

Хотите создать веб-приложение, используя SOLR в качестве только бэкэнда. Большая часть данных будет храниться в SOLR через автономные задания, хотя в CRUD есть необходимость.

Глядя на популярные сегодня веб-фреймворки, такие как Rails, Django, web2py и т. Д., Несмотря на NoSQL, преимуществом для производительности по-прежнему остается активное внедрение записей, расположенное на вершине СУБД.

Какова лучшая структура с точки зрения производительности для создания веб-приложений с SOLR в качестве бэкэнда?

Ответы [ 4 ]

2 голосов
/ 03 сентября 2010

Все три из приведенных выше ответов являются отличными рекомендациями для сред разработки.Я бы перевернул ваш вопрос и спросил «Какая платформа для меня лучше всего подходит для веб-приложений», а не «которая лучше всего подходит для Solr», и принял бы решение, основываясь на ваших навыках, сообществе, которое у вас есть, и других мягких факторах.Особенно, если вы абсолютно агностик в отношении того, куда идти.

Если у вас есть друзья, которые любят Grails и могут помочь вам начать, то Grails может стать для вас способом.Есть группа Python, которая регулярно встречается?Тогда у Джанго есть что предложить.Я лично люблю Rails, и поэтому я бы рекомендовал рельсы.Но это только рекомендация «Что мне нравится» против «что лучше».

Замечательная вещь в Solr - это то, насколько он агностичен для внешнего интерфейса.Он играет хорошо во многих средах!

2 голосов
/ 03 сентября 2010

Слой 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 и дополнительных строка после принимает. Вот и все.

1 голос
/ 03 сентября 2010

Я бы использовал Sunspot 1.2 и Rails 3.

Sunspot обычно используется как расширение ActiveRecord, но также разработано так, чтобы быть независимым от ORM. Rails 3 отделил ActiveRecord от фреймворка, что делает его полностью свободным от ORM.

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

0 голосов
/ 09 сентября 2010

Кстати, SphinxSearch намного быстрее, чем solr / lucence и обладает множеством уникальных функций. Кроме того, точность поиска намного лучше по сравнению с моим опытом и независимыми тестами.

имеет собственный, очень простой Python API и хорошо интегрируется с web2py.

но для этого нужна СУБД. Я использую его, web2py + sphinxsearch, для создания поисковой системы офисных файлов.

Вы тоже можете попробовать.

www.sphinxsearch.com

...