Изменим схему и переключим поисковый трафик, учитывая записи во время переиндексации.
- Создать v2
- Перенос + догонка
- Проверка → alias
Изменим схему и переключим поисковый трафик, учитывая записи во время переиндексации.
Курс ориентирован на Elasticsearch 9.4.3. Разборы упражнений используют публичный набор products; остальные запросы показывают отдельные учебные индексы и могут требовать подготовки или прав, недоступных в тренажёре. Ответы сокращены, score может меняться. Для расширенных функций проверяйте лицензию и вариант развёртывания.
Версии и aliases
products-v1 и products-v2 — физические индексы, products-read — стабильное имя для чтения. Write alias с is_write_index явно определяет цель записи. Alias не копирует данные и не синхронизирует версии. Операции удаления старой привязки и добавления новой выполняют одним запросом _aliases, чтобы переключить маршрутизацию атомарно.
СамопроверкаПереиндексация при работающем приложении
Сначала создайте новую схему и настройки, затем переносите документы. Reindex сам по себе не захватывает все изменения, происходящие после начала чтения. Нужен воспроизводимый план: снимок плюс журнал изменений с контрольной позицией либо временная остановка записи на финальном догоне. Перед переключением сравните количество, контрольные документы и поисковые сценарии. Откат требует понимания, какие записи новая версия уже получила.
СамопроверкаШаблоны и временные данные
Component templates объединяют повторяемые настройки; index templates задают конфигурацию будущих индексов. Изменение шаблона не переписывает старые индексы. Data streams и rollover подходят прежде всего для потоков временных данных. ILM управляет фазами жизненного цикла в подходящих развёртываниях; serverless использует свои механизмы. Каталог с частыми обновлениями по id не нужно автоматически превращать в поток логов.
Запрос применяют после проверки v2 и догонки изменений, а не вместо неё.
{
"actions": [
{
"remove": {
"index": "products-v1",
"alias": "products-read"
}
},
{
"add": {
"index": "products-v2",
"alias": "products-read"
}
}
]
}Как читать результат
Запрос применяют после проверки v2 и догонки изменений, а не вместо неё.
Разбор на примере каталога
Во время переноса v1→v2 товар меняется и затем удаляется. Если догонка умеет применять только обновления, удалённый товар останется в v2. Поэтому журнал должен включать удаления и иметь контрольную позицию. После завершения переноса проиграйте изменения до согласованной точки, проверьте документы и только затем переключайте alias. Если старый индекс больше не получает события, простой возврат alias через сутки уже не является корректным откатом: данные могли разойтись.
СамопроверкаСамопроверка
Сначала ответьте самостоятельно, затем раскройте объяснение.
1. Alias переносит данные?
Нет, он задаёт маршрутизацию к индексам.
2. Как переключить alias атомарно?
Передать remove и add в одном запросе _aliases.
3. Reindex ловит все новые записи?
Нет, нужен отдельный механизм догонки.
4. Шаблон меняет старый индекс?
Нет, он действует при создании новых.
5. Что нужно для отката?
Сохранённую старую версию и план учёта записей после переключения.
Краткая памятка
- Нет, он задаёт маршрутизацию к индексам.
- Передать remove и add в одном запросе _aliases.
- Нет, нужен отдельный механизм догонки.
- Нет, он действует при создании новых.
- Сохранённую старую версию и план учёта записей после переключения.
Официальная документация
Готовы применить знания?
Подтвердите прочтение, чтобы сохранить своё место. Чтение и решение заданий учитываются отдельно в этом браузере с помощью гостевой cookie.