Оптимизация полнотекстового поиска (ППП) 1С и очистка индекса
- Разрастание каталога
1Cv8FTxtдо сотен гигабайт. - Длительное выполнение регламентных заданий
ОбновлениеИндексаПППиСлияниеИндексаППП. - Ошибки
Ошибка полнотекстового поиска: Полнотекстовый индекс не актуален. - Зависание пользовательских сессий при вводе текста в строке глобального поиска.
1. Программное полное перестроение индекса ППП
При повреждении или сильном разрастании индекса выполните его очистку и пересоздание в коде 1С:
// Полная очистка индекса ППП
ПолнотекстовыйПоиск.Очистить();
// Запуск полного обновления (фоновое задание)
ПолнотекстовыйПоиск.Обновить(Истина, Истина);2. Настройка регламентных заданий в 1С
Разделите регламентные задания ППП на два независимых потока расписания:
- Обновление индекса ППП: Выполнять каждые 5-10 минут (добавляет только новые порции данных во временный индекс);
- Слияние индекса ППП: Выполнять 1 раз в сутки ночью (объединяет временные индексы с основным).
3. Выборочное отключение полнотекстового поиска в метаданных
Отключите свойство Полнотекстовый поиск (установите Не использовать) для тяжелых непубличных объектов:
- Регистры сведений версионирования объектов;
- Таблицы присоединенных файлов (PDF, сканы, бинарные данные);
- Журналы регистрации и технологические справочники.
Частые вопросы (FAQ)
Где физически хранятся файлы полнотекстового индекса 1С?
В клиент-серверном режиме индекс хранится в каталоге рабочего сервера 1С: <КаталогДанныхСервера1С>/<GUID_Базы>/1Cv8FTxt/.
Почему нельзя хранить индекс ППП на медленном сетевом диске?
ППП выполняет сотни тысяч случайных мелких операций чтения-записи. Размещение каталога 1Cv8FTxt на медленном диске блокирует работу всех рабочих процессов rphost.
Можно ли полностью отключить механизм полнотекстового поиска в 1С?
Да, в режиме «1С:Предприятие» в меню «Администрирование» -> «Общие настройки» -> «Полнотекстовый поиск» можно снять флаг использования, если пользователи не пользуются поисковой строкой.
Что делать, если регламентное задание слияния индекса ППП падает по таймауту?
Выполните принудительную команду ПолнотекстовыйПоиск.Очистить() и пересоздайте индекс с нуля в монопольном режиме.