Господа, нужна помощь с RT индексами, а точнее необходимо решение, которое позволит быстро обновлять или полностью удалять индекс.
Имеем: 270 млн записей, одна колонка, без атрибутов. При первом запуске создаем индекс на лету вызывая /cli с такими параметрами:
CREATE TABLE {index_name} (
data text
) type='rt' charset_table='0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F' min_infix_len='3'
min_prefix_len='3' dict='keywords' expand_keywords='1' index_exact_words='1'
Затем добавляем в индекс батчами по 1 млн в /bulk. Асинхронно в 5 потоков на 5 ядер ЦП, занимает около 40 мин для 270 млн строк.
Далее раз в сутки нам нужно обновить данные, и тут проблема. Если с добавлением все ок, то удаление 200к строк из индекса занимает неприличное кол-во времени.
Пробовал truncate всей таблицы - тоже очень долго. Drop table тоже долго, так как сначала выполняется truncate, если я правильно понял мануал.
Сейчас рабочее и наиболее быстрое решение остановить manticore, удалить файлы индексов и снова за 40 минут загрузить актуальные данные. Но это не вариант для прода. Есть идеи как быстро сделать обновление или моментальное удаление индекса не прибегая к ручному труду в виде остановки/запуска manticore с взаимодействием с файлами индекса?