Я пытаюсь понять, что именно делает ElasticSearch, когда дело касается постоянства.
Когда я индексирую документы в ElasticSearch, я также на этом этапе сохраняю их в ElasticSearch. Хотя причина, по которой я индексирую свои документы с помощью ElasticSearch, заключается в том, чтобы иметь возможность искать их с помощью API и определенных поисковых алгоритмов.
Затем, для остальной части моего приложения, у меня также есть реляционная база данных, в которой я храню множество вещей, касающихся моего приложения. В реляционной базе данных у меня также есть те же документы, которые я индексирую в ElasticSearch.
В результате у меня есть документы, сохраненные как в ElasticSearch, так и в реляционной базе данных. Я рассказываю об ElasticSearch, чтобы получить расширенные возможности поиска, но теперь мне интересно, не является ли этап сохранения документов в ElasticSearch и реляционной базе данных избыточным.
Было бы разумно удалить документы из реляционной базы данных и использовать проиндексированные документы в ElasticSearch в качестве источника данных?
Может быть. Это дизайнерское решение, к которому пришли наши друзья Обмен стеков DBA может сказать больше. Иногда вы делаете избыточные копии из-за различных потребностей в поиске или отчетности или из-за различных механизмов баз данных.
В рамках этого проекта следует понимать безопасность Elasticsearch, особенно потому, что это распределенная система. Отчет Джепсена особенно интересен. Сетевые разделы могут привести к потере документа в некоторых случаях:
Мои рекомендации для пользователей Elasticsearch неизменны: храните данные в базе данных с лучшими гарантиями безопасности и постоянно загружайте каждый документ из этой базы данных в Elasticsearch. Если в вашей поисковой системе не хватает нескольких документов в течение дня, это не имеет большого значения; они будут повторно вставлены при следующем запуске и появятся при последующих поисках. Отсутствие использования Elasticsearch в качестве системы записи также избавляет вас от необходимости беспокоиться о простоях ES во время выборов.
В качестве практического примера я знаю предприятие с разросшейся MediaWiki, которое построило поисковую систему на Elasticsearch. У вики и других источников есть собственные СУБД, поддерживающие множество приложений CRUD. Затем в поисковик загружаются десятки миллионов всевозможных документов, так что люди обычно могут что-то найти.