NoSQL (MongoDB) по сравнению с Lucene (или Solr) как Ваша база данных

С перемещением 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. Новый документ, создайте идентификатор и сохраните его.Готово. Хороший и легкий.

273
задан Community 22 September 2017 в 08:01
поделиться

1 ответ

Это отличный вопрос, над которым я размышлял довольно долго. Я подытожу свои выводы:

  1. Вы можете легко использовать Lucene/Solr вместо MongoDB практически во всех ситуациях, но не наоборот. Пост Гранта Ингерсолла подытоживает это здесь.

  2. MongoDB и т.д., похоже, служат целям, где не требуется поиск и/или фасеттинг. Это, по-видимому, более простой и, возможно, легкий переход для программистов, выходящих из мира РСУБД. Если человек не привык к ним, Lucene и Solr имеют более крутую кривую обучения.

  3. Существует не так много примеров использования Lucene/Solr в качестве хранилища данных, но Guardian добился некоторых успехов и обобщил их в отличном слайд-деке, но они тоже не готовы полностью присоединиться к Solr и "исследуют" возможность объединения Solr с CouchDB.

  4. Наконец, я предложу наш опыт, который, к сожалению, не может рассказать много о бизнес-кейсе. Мы работаем в масштабе нескольких ТБ данных, приложение практически реального времени. После изучения различных комбинаций, решили остановиться на Solr. Пока что (6 месяцев и более) не жалеем и не видим причин для перехода на что-то другое.

Резюме: если у вас нет потребности в поиске, Mongo предлагает простой и мощный подход. Однако если поиск является ключевым для вашего предложения, вам, вероятно, лучше придерживаться одной технологии (Solr/Lucene) и оптимизировать ее - меньше движущихся частей.

Мои 2 цента, надеюсь, это помогло.

244
ответ дан 23 November 2019 в 02:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: