С ростом NoSQL на основе баз данных на основе документов я недавно обратил внимание на MongoDB. Я заметил поразительное сходство с тем, как относиться к элементам как к «Документам», так же, как это делает Lucene (и пользователи Solr).
Итак, вопрос: почему вы хотите использовать NoSQL (MongoDB, Cassandra, CouchDB и т. Д.) Поверх Lucene (или Solr) в качестве «базы данных»?
То, что я (и я уверен, что другие) ищут в ответе, является их глубоким сравнением. Давайте пропустим все обсуждения реляционных баз данных, поскольку они служат другой цели.
Lucene дает некоторые серьезные преимущества, такие как мощные системы поиска и веса. Не говоря уже о гранях в Solr (который скоро будет добавлен в Lucene, да!). Вы можете использовать документы Lucene для хранения идентификаторов и доступа к таким документам, как MongoDB. Смешайте его с Solr, и теперь вы получите решение с балансировкой нагрузки на основе WebService.
Вы можете даже добавить сравнение поставщиков кеша вне процесса, таких как Velocity или MemCached, когда говорите о схожем хранении данных и масштабируемости MongoDB.
Ограничения вокруг MongoDB напоминают мне об использовании MemCached, но я могу использовать Microsoft Velocity и иметь больше возможностей для группировки и сбора списков по сравнению с MongoDB (я думаю). Не может быть быстрее или масштабируемее, чем кэширование данных в памяти. Даже в Lucene есть провайдер памяти.
MongoDB (и другие) имеют некоторые преимущества, такие как простота использования их API. Создайте новый документ, создайте идентификатор и сохраните его. Готово. Легко и приятно.