Назад | Перейти на главную страницу

ElasticSearch, включая базу данных или против нее?

Я пытаюсь понять, что именно делает ElasticSearch, когда дело касается постоянства.

Когда я индексирую документы в ElasticSearch, я также на этом этапе сохраняю их в ElasticSearch. Хотя причина, по которой я индексирую свои документы с помощью ElasticSearch, заключается в том, чтобы иметь возможность искать их с помощью API и определенных поисковых алгоритмов.

Затем, для остальной части моего приложения, у меня также есть реляционная база данных, в которой я храню множество вещей, касающихся моего приложения. В реляционной базе данных у меня также есть те же документы, которые я индексирую в ElasticSearch.

В результате у меня есть документы, сохраненные как в ElasticSearch, так и в реляционной базе данных. Я рассказываю об ElasticSearch, чтобы получить расширенные возможности поиска, но теперь мне интересно, не является ли этап сохранения документов в ElasticSearch и реляционной базе данных избыточным.

Было бы разумно удалить документы из реляционной базы данных и использовать проиндексированные документы в ElasticSearch в качестве источника данных?

Может быть. Это дизайнерское решение, к которому пришли наши друзья Обмен стеков DBA может сказать больше. Иногда вы делаете избыточные копии из-за различных потребностей в поиске или отчетности или из-за различных механизмов баз данных.

В рамках этого проекта следует понимать безопасность Elasticsearch, особенно потому, что это распределенная система. Отчет Джепсена особенно интересен. Сетевые разделы могут привести к потере документа в некоторых случаях:

Мои рекомендации для пользователей Elasticsearch неизменны: храните данные в базе данных с лучшими гарантиями безопасности и постоянно загружайте каждый документ из этой базы данных в Elasticsearch. Если в вашей поисковой системе не хватает нескольких документов в течение дня, это не имеет большого значения; они будут повторно вставлены при следующем запуске и появятся при последующих поисках. Отсутствие использования Elasticsearch в качестве системы записи также избавляет вас от необходимости беспокоиться о простоях ES во время выборов.

В качестве практического примера я знаю предприятие с разросшейся MediaWiki, которое построило поисковую систему на Elasticsearch. У вики и других источников есть собственные СУБД, поддерживающие множество приложений CRUD. Затем в поисковик загружаются десятки миллионов всевозможных документов, так что люди обычно могут что-то найти.