Ответ 1
Это очень хороший вопрос. Я задал себе тот же вопрос и придумал следующий ответ.
- У ElasticSearch нет хорошего способа резервного копирования данных. В качестве примера выполните быстрый поиск "Резервное копирование ElasticSearch" и один для "резервной копии mongodb". У MongoDB есть инструменты и документация о том, как создавать резервные копии данных. Несмотря на то, что есть документация о том, как создавать резервные копии данных ElasticSearch, эта документация не выглядит зрелой.
- В общем, MongoDB имеет гораздо лучшую документацию. В частности, его административная документация намного лучше, чем ElasticSearch.
- MongoDB предоставляет коммерческую поддержку. На данный момент вам может не понравиться коммерческая поддержка, но приятно знать, что она доступна.
- В MongoDB встроен MapReduce, ElasticSearch - нет. Это не может быть большой вещью, но стоит отметить.
Мое личное мнение заключается в том, что я бы не использовал ElasticSearch, если вы не можете позволить себе потерять данные. Я мог видеть использование ElasticSearch в качестве основного хранилища данных для чего-то требующего аналитики в реальном времени, но не имел никаких долгосрочных требований к хранению данных. В противном случае я бы предложил использовать MongoDB и ElasticSearch. Для ElasticSearch есть плагин RiverTo MongoDB. Это позволяет легко обновить индекс ElasticSearch автоматически.