С перемещением NoSQL, растущим на основе основанных на документе баз данных, я посмотрел на MongoDB в последнее время. Я заметил поразительное сходство с тем, как рассматривать объекты как "Документы", точно так же, как Lucene делает (и пользователи Solr).
Так, вопрос: Почему Вы хотели бы использовать NoSQL (MongoDB, Cassandra, CouchDB, и т.д.) по Lucene (или Solr) как Ваша "база данных"?
То, что я (и я уверен, что другие), ищущий в ответе является некоторыми сравнениями глубокого погружения их. Давайте перескочим через обсуждения реляционной базы данных все вместе, поскольку они служат другой цели.
Lucene дает некоторые серьезные преимущества, такие как мощный поиск и системы веса. Не говоря уже о фасетах в Solr (который Solr интегрируется в Lucene скоро, yay!). Можно использовать документы Lucene, чтобы сохранить идентификаторы и получить доступ к документам как таковым точно так же, как MongoDB. Смешайте его с Solr, и Вы теперь получаете Основанное на веб-сервисе, загрузка сбалансированное решение.
Можно даже добавить сравнение out-of-proc поставщиков кэша, таких как Скорость или MemCached при разговоре о подобном хранении данных и масштабируемости MongoDB.
Ограничения вокруг MongoDB напоминают мне об использовании MemCached, но я могу использовать Скорость Microsoft и иметь больше группировки и перечислить питание набора по MongoDB (я думаю). Не может добраться немного быстрее или масштабируемый, чем кэширующиеся данные в памяти. Даже Lucene имеет поставщика памяти.
MongoDB (и другие) действительно имеют некоторые преимущества, такие как простота использования их API. Новый документ, создайте идентификатор и сохраните его.Готово. Хороший и легкий.
Это отличный вопрос, над которым я размышлял довольно долго. Я подытожу свои выводы:
Вы можете легко использовать Lucene/Solr вместо MongoDB практически во всех ситуациях, но не наоборот. Пост Гранта Ингерсолла подытоживает это здесь.
MongoDB и т.д., похоже, служат целям, где не требуется поиск и/или фасеттинг. Это, по-видимому, более простой и, возможно, легкий переход для программистов, выходящих из мира РСУБД. Если человек не привык к ним, Lucene и Solr имеют более крутую кривую обучения.
Существует не так много примеров использования Lucene/Solr в качестве хранилища данных, но Guardian добился некоторых успехов и обобщил их в отличном слайд-деке, но они тоже не готовы полностью присоединиться к Solr и "исследуют" возможность объединения Solr с CouchDB.
Наконец, я предложу наш опыт, который, к сожалению, не может рассказать много о бизнес-кейсе. Мы работаем в масштабе нескольких ТБ данных, приложение практически реального времени. После изучения различных комбинаций, решили остановиться на Solr. Пока что (6 месяцев и более) не жалеем и не видим причин для перехода на что-то другое.
Резюме: если у вас нет потребности в поиске, Mongo предлагает простой и мощный подход. Однако если поиск является ключевым для вашего предложения, вам, вероятно, лучше придерживаться одной технологии (Solr/Lucene) и оптимизировать ее - меньше движущихся частей.
Мои 2 цента, надеюсь, это помогло.