Есть ли на сегодняшний день причины по которым в связке Elasticsearch + mongodb, mongodb продолжает иметь смысл,
почему не перейти полностью на Elasticsearch как на nosql базу данных?
Вижу что различий практически нет, и та и та база позволяет хранить документы, индексировать поля, и там и там есть server side scripts (ваша табличка устарела) и поэтому не вижу зачем мне хранить документы и там и там если elasticsearch умеет делать все тоже самое что и mongo + fulltext search
@icelaba мое же личное мнение, стоит использовать специализированную СУБД только там где она нужна. Монга же универсальна, так что в эластику можно перенести только те данные, по которым будет вестись поиск. Так как все же эластика учитывает морфологию языка.
@Fesor о спасибо, но с тех пор уже больше года прошло и многое поменялось, и вот эти строчки в ответе It just so happens that most of the times, the results are close to exact. по моим ощущениям не выглядят правдой, я мало верю что по индексируемым полям elastic может выдать "приблизительный результат", если это так то безусловно mongo имеет право на существование, буду искать подтверждение
@Fesor а почему бы и нет :-) хакерам тоже это может показаться странным + к безопасности :-)
мне просто кажется странным хранить одно и тоже в двух разных базах - понятно что с монги слезть в реальности не выйдет - тот же mongoose я полагаю не имеет аналогов для elastic, но каких то препятствий по ощущениям нет, и на куче задач хватит просто elastic, и так как руки чешутся и рано или поздно эта чесотка приведет меня к отказу от mongo хочу узнать заранее что меня ждет :-)
В данный момент думаю процентов 80-90 базы текущего проекта утащить на elastic и убрать из mongo
Иван Старков много воды уже утекло, но я все же добавлю для новых поколений.
Если по каким-то соображениям нам захочется изменить маппинг какого-то индекса в эластике (например, поднастроить фильтры или токенизаторы), то придется убить весь индекс со всеми данными. Или если случайно (а такое бывает), побьется индекс в эластике.
Откуда в таком случае брать данные снова? Вы пробовали восстанавливать ES из бекапа?
Поэтому обычно полная переиндексация делается из основной базы данных (MySQL, Mongo и пр.).
В таком случае мы храним все данные в надежном хранилище, которое имеет привычные пути сохранности данных. А ES... это просто индекс для быстрого поиска и некоторых статистических вычислений.
Наверно потому что некоторые запросы в такую базу не пошлешь?
Если у вас конечно все ограничивается тремя простейшими запросами то конечно можно перейти.