Переиндексация должна обновлять поиск, а не оставлять пользователей без выдачи. Но если активный индекс удалили или переключили рано, поиск падает.
Для каталога, базы знаний, CRM или документов неработающий поиск резко снижает пользу сервиса.
Коротко: переиндексацию лучше делать в новый индекс и переключать alias только после проверки.Почему возникает проблема
Проблема возникает из-за удаления старого индекса перед готовностью нового, ошибок mapping, failed bulk-запросов, нехватки диска, таймаутов, неправильного alias или несовместимого формата документов.
Что проверить в первую очередь
- существует ли активный индекс
- куда указывает alias
- есть ли ошибки bulk indexing
- хватает ли ресурсов кластера
- совпадает ли mapping с запросами приложения
Как я решаю такую задачу
Я восстанавливаю рабочий индекс и настраиваю безопасную схему будущей переиндексации.
- проверяю состояние индексов и alias
- нахожу ошибки переиндексации
- возвращаю поиск на рабочий индекс
- исправляю mapping или данные
- настраиваю blue-green reindex
Что подготовить
- какой поиск используется
- имена индексов
- логи переиндексации
- пример запроса поиска
- доступ к Elasticsearch/OpenSearch
Сроки и риски
Если старый индекс сохранен, восстановление быстрее. Если он удален, нужно пересобрать индекс из базы и проверить mapping.
Чего лучше не делать
Не удаляйте старый индекс до проверки нового. Alias позволяет переключать поиск безопаснее.
FAQ
Что такое alias?
Псевдоним, через который приложение обращается к текущему рабочему индексу.
Можно ли переиндексировать без простоя?
Да, через новый индекс и атомарное переключение alias.
Почему часть документов не попала?
В bulk-ответах могли быть ошибки по отдельным документам.
Нужен ли мониторинг диска?
Да, поиск может перестать индексировать при нехватке места.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и короткое описание того, как должно работать. Я посмотрю задачу, предложу безопасный план и скажу, какие доступы понадобятся.
Итог
Поиск должен переиндексироваться без простоя: новый индекс собирается отдельно, проверяется и только потом становится активным.