Postgres - это реляционная база данных, которая хороша для нормализации данных и запросов, включающих несколько таблиц, но не очень хороша для поиска и фильтрации данных. Несмотря на то, чтоasticsearch очень хорош для поиска и фильтрации .
Elasticsearch даже предоставляет из кэша фильтра коробки , что означает, что если вы фильтруете данные на основе некоторых столбцов и снова некоторые другие пользователи используют те же критерии фильтрации, затем elasti c не будет снова фильтровать данные и выдает результат из своего кэша фильтра, как объяснено в справочной ссылке.
Я вижу, как MongoDB, так и Elasti c вариант использования в вашем приложении, Elasticsearch не является базой данных, и они также не нацелены на замену реляционных баз данных, и вы должны всегда использовать базы данных, если вы не можете позволить себе потерю данных, см. эту ссылку для обсуждения Elasticsearch для получения дополнительной информации .
Суть в том, что вы должны включать только релевантные атрибуты, которые будут использоваться для поиска и фильтрации в вашем поисковом индексе в этом случае, но вы также должны хранить свои данные в Postgres, если вы храните транзакционные данные и не можете себе позволить Утрата
https://www.elastic.co/guide/en/elasticsearch/resiliency/current/index.html - отличная статья об устойчивости Elasticsearch и, исходя из ваших вариантов использования, можете ли вы использовать ее в качестве основного хранилища или нет.