Это можно попробовать.
Непонятно вот что. Зашел у нас новый main с корректным количеством документов как в источнике. Количество совпадает по разным запросам и метрикам/статистикам.
Затем собираем новую delta уже на новом диапазоне за 4 минуты: main в начале часа и до старта delta. За это время она в себе несет N измененных и новых документов. Соответственно при ротации delta в main должны попасть новые документы и подавлены измененные. Так?
У нас как раз ручная индексация и ротация.
Для индексации только готовим индексы: manticore indexer --rotate --nohup <plain_table>
Для ротации готовятся команды с
RELOAD TABLE <plain_table>; и затем применяются.
Пример лога с logdebug как раз скидывал выше.
Вот пример под индекс:
[Fri Jul 4 11:03:09.179 2025] [1827296] rotating table 'products_delta_0': started
[Fri Jul 4 11:03:09.179 2025] [1827296] DEBUG: prealloc enough RAM and lock new table
[Fri Jul 4 11:03:09.189 2025] [1827296] DEBUG: Locking the table via file /dev/shm/manticore/indexes/products/products_delta_0.new.spl
[Fri Jul 4 11:03:09.189 2025] [1827296] DEBUG: lock /dev/shm/manticore/indexes/products/products_delta_0.new.spl success
[Fri Jul 4 11:03:09.189 2025] [1827296] DEBUG: CSphIndex_VLN::Preread invoked 'products_delta_0'(/dev/shm/manticore/indexes/products/products_delta_0.new)
[Fri Jul 4 11:03:09.189 2025] [1827296] DEBUG: Preread successfully finished
[Fri Jul 4 11:03:09.189 2025] [1827296] DEBUG: activate new table
[Fri Jul 4 11:03:09.189 2025] [1827296] RW-idx for rename to .old, acquiring...
[Fri Jul 4 11:03:09.189 2025] [1827296] RW-idx for rename to .old, acquired...
[Fri Jul 4 11:03:09.190 2025] [1827296] DEBUG: rotating table 'products_delta_0': applying other tables killlists
[Fri Jul 4 11:03:09.190 2025] [1827296] DEBUG: rotating table 'products_delta_0': applying other tables killlists... DONE
[Fri Jul 4 11:03:09.190 2025] [1827296] DEBUG: rotating table 'products_delta_0': apply killlist from this table to other tables (killlist_target)
[Fri Jul 4 11:03:09.190 2025] [1827296] DEBUG: rotating table 'products_delta_0': apply killlist from this table to other tables (killlist_target)... DONE
[Fri Jul 4 11:03:09.190 2025] [1827296] DEBUG: all went fine; swap them
[Fri Jul 4 11:03:09.190 2025] [1827296] rotating table 'products_delta_0': success
[Fri Jul 4 11:03:09.191 2025] [1827296] DEBUG: unlink /dev/shm/manticore/indexes/products/products_delta_0.old
[Fri Jul 4 11:03:09.193 2025] [1827296] DEBUG: Unlocking the table (lock /dev/shm/manticore/indexes/products/products_delta_0.old.spl)
[Fri Jul 4 11:03:09.193 2025] [1827296] DEBUG: File ID ok, closing lock FD 505, unlinking /dev/shm/manticore/indexes/products/products_delta_0.old.spl
Забыл еще сказать, что ротация у нас бесшовная с seamless_rotate, как по документации.