У меня был похожий опыт; в анализаторе были определенные параметры, которые время от времени менялись; очевидно, если бы это было так, весь индекс должен быть восстановлен. (Я не буду вдаваться в подробности, достаточно сказать, что у меня такое же требование!)
Я сделал то, что вы предложили в своем вопросе. Было три каталога: «старый», «текущий» и «новый». Запросы с живого сайта всегда шли против «текущих». Индекс рекреационного процесса составил:
- Рекурсивное удаление в "старых" и "новых" каталогах
- Создать новый индекс в «новом» каталоге (в моем случае это занимает около 6 часов)
- Переименовать «текущий» в «старый»; и "новый" в "текущий"
- Рекурсивно удалить "старый" каталог
Анализ того, что происходит, когда происходит сбой процесса - если он произойдет сбой на 1-м шаге, в следующий раз он просто продолжится. Если во 2-м шаге произойдет сбой, то «новый» каталог будет удален при следующем запуске. Третий шаг очень быстрый - переименование каталога быстрое и атомарное. Сбой на 4-м шаге не имеет значения, он просто будет очищен при следующем запуске.
Внимательный наблюдатель заметит, что на шаге 3 может произойти сбой системы между переименованием текущего каталога и перемещением нового каталога. Это вряд ли произойдет, так как переименование каталога происходит так быстро. Система работает в течение нескольких лет, и этого никогда не было (пока?).