Индекс стареет сразу после запуска
Документы меняются, права отзываются, модели обновляются. Определите freshness SLO: допустимую задержку от изменения source до доступности новой версии в retrieval.
Change detection
Используйте события, CDC, webhook или периодический crawl, но подтверждайте изменения checksum. Сохраняйте source version и ingestion cursor; повторное событие должно быть idempotent.
Incremental update
Новый документ обрабатывается независимо, изменённый получает новую версию chunks, удалённый — tombstone. Публикация должна быть атомарной на уровне документа, чтобы не смешать страницы.
Когда нужен полный reindex
Смена embedding, tokenizer, chunking или schema делает старые vectors несовместимыми. Стройте новый индекс параллельно, выполняйте backfill и dual-write для входящих изменений.
Alias switch и rollback
После validation и shadow queries переключите read alias на новую версию. Старый индекс сохраняйте на согласованный rollback window. Версия должна попадать в trace и citation.
Cache invalidation
Ключ включает corpus и policy version. Удаление закрытого документа требует немедленно инвалидировать semantic cache, answer cache и agent memory, иначе старый ответ переживёт индекс.
Reconciliation
Регулярно сравнивайте source catalog, processed manifests и vector store: пропуски, orphan chunks, неверные версии и задержку. Restore drill подтверждает, что индекс можно перестроить из оригиналов.