Жизненный цикл поискового индекса
Индекс разбит по месяцам (бакеты emails_ГГГГ-ММ). Управление бакетами — в Проверка состояния поиска, раздел [Как управлять бакетами индекса по месяцам]. Семантика операций:
-
Отключить (cold(!)) — коллекция бакета удаляется из Solr (ресурсы освобождаются), статус бакета —
cold. Поиск по этому месяцу не выполняется; письма остаются в архиве и открываются по идентификатору. База и хранилище Клавдия не затронуты. -
Включить — коллекция создаётся заново (с текущим replicationFactor(!)), статус —
active, и запускается авто-переиндексация: письма месяца заново помещаются в индекс из базы. Бакет снова появляется в результатах поиска после завершения индексации. - Переиндексировать — перестроить индекс одного бакета (без удаления коллекции).
Время включения зависит от объёма месяца (переиндексация). Если требуется мгновенное повторное включение без освобождения ресурсов — коллекция не удаляется, а лишь исключается из поиска («мягкое отключение», настраивается).
Полная перестройка индекса — при смене схемы (новые поля/алиасы), миграции или подозрении на порчу индекса.
- Меню → [Общие настройки → Поиск (Solr)].
- В блоке [Бакеты (по месяцам)] нажмите [Реиндексировать ВСЁ] и подтвердите.
- Все письма помечаются как неопроиндексированные; фоновая задача (планировщик) переиндексирует их параллельно, создавая/переиспользуя бакеты по месяцу получения. Кэш поиска сбрасывается.
Время выполнения зависит от объёма архива (может составлять часы). Прогресс виден в Очередь задач (Очередь задач) и в блоке [Очередь индексации].
После апгрейда схемы Solr (добавление полей, алиасов, copyField — версия схемы в
solrconfig.xml/schema.xmlвыросла): новые поля/copyField применяются только к ново-индексируемым документам. Существующий индекс не пересчитывается автоматически — запустите «Реиндексировать ВСЁ», чтобы документы получили новые поля. Без reindex(!) поиск по новым алиасам/полям не работает для уже архивированных писем.
Навигация по книге
- Следующая статья: Вывод инстанса Solr на обслуживание