Устанавливает режим использования разделения составных слов.
Синтаксис
УстановитьРежимРазделенияСоставныхСлов(<РежимРазделенияСоставныхСлов>)Полное описание, параметры и ограничения
МенеджерПолнотекстовогоПоиска.УстановитьРежимРазделенияСоставныхСлов (FullTextSearchManager.SetCompositeWordsSeparationMode)
МенеджерПолнотекстовогоПоиска (FullTextSearchManager)
УстановитьРежимРазделенияСоставныхСлов (SetCompositeWordsSeparationMode)
Доступен, начиная с версии 8.3.15.
Синтаксис:
УстановитьРежимРазделенияСоставныхСлов(<РежимРазделенияСоставныхСлов>)
Параметры:
<РежимРазделенияСоставныхСлов> (необязательный)
Тип: РежимРазделенияСоставныхСлов.
Выбранный режим для механизма разделения составных слов.
Описание:
Устанавливает режим использования разделения составных слов.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
См. также:
МенеджерПолнотекстовогоПоиска, метод ПолучитьРежимРазделенияСоставныхСлов
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Изменить и восстановить три настройки своего поискового стенда
Сначала читаем исходные параметры, затем временно задаём ограничения. Восстановление пытается вернуть каждый параметр и сообщает ошибки, не замалчивая их.
Где и как запускать
Полный серверный общий модуль УчебныйПолнотекстовыйПоиск своей отдельной учебной базы.
Подготовка
Используйте только отдельную собственную конфигурацию УчебнаяКонфигурацияСинтаксиса с собственным справочником УчебныеТовары. Включите использование полнотекстового поиска у справочника и Наименование в своей учебной конфигурации.
Вручную создайте ровно три товара: Учебномаяк Книга, Учебномаяк Ручка, Учебномаяк Коробка. Код урока не создаёт и не записывает эти товары. Маркер Учебномаяк нужен, чтобы не искать реальные сведения.
Создайте серверный общий модуль УчебныйПолнотекстовыйПоиск с флагом Сервер, вставьте весь модуль выбранного урока. Из серверного обработчика своей учебной обработки вызовите УчебныйПолнотекстовыйПоиск.ВыполнитьПример().
Сначала вручную разрешите поиск и обновите индекс своей учебной базы либо используйте отдельный урок обновления. Для опытов поиска индекс должен быть актуален, пользователь должен иметь чтение всех трёх собственных товаров.
Для административных уроков нужен единственный пользователь УчебныйПользовательСинтаксиса, право Администрирование, монопольный сеанс без разделителей данных. В этих уроках используется только Версия1; Версия2 требует отдельной подготовки поискового сервера.
Первый запуск административного урока делайте с пустым подтверждением. Не используйте рабочую базу или копию с реальными данными. Обслуживание меняет индекс/настройки и может занимать время, но не должно подменяться удалением товаров.
Процедура ВыполнитьПример(Подтверждение = "") Экспорт
Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
Текущий = ПользователиИнформационнойБазы.ТекущийПользователь();
Если Пользователи.Количество() <> 1 ИЛИ Текущий = Неопределено Тогда
ВызватьИсключение "Для удаления истории нужна отдельная база с одним учебным пользователем";
КонецЕсли;
Если Текущий.Имя <> "УчебныйПользовательСинтаксиса" Тогда
ВызватьИсключение "Войдите только под собственным учебным пользователем";
КонецЕсли;
Если НЕ МонопольныйРежим() Тогда
ВызватьИсключение "Сначала вручную откройте свою учебную базу монопольно";
КонецЕсли;
Если ПолнотекстовыйПоиск.ПолучитьВерсиюПолнотекстовогоПоиска() <> ВерсияПолнотекстовогоПоиска.Версия1 Тогда
ВызватьИсключение "Этот административный опыт рассчитан только на собственный стенд Версия1";
КонецЕсли;
Если Подтверждение <> "МЕНЯЮ НАСТРОЙКИ ТОЛЬКО МОЕГО УЧЕБНОГО ПОИСКА" Тогда
Сообщить("Подтверждение отсутствует; настройки не менялись");
Возврат;
КонецЕсли;
Старые = Новый Структура;
Старые.Вставить("Задания", ПолнотекстовыйПоиск.ПолучитьКоличествоЗаданийИндексирования());
Старые.Вставить("Размер", ПолнотекстовыйПоиск.ПолучитьМаксимальныйРазмерИндексируемыхДанных());
Старые.Вставить("СоставныеСлова", ПолнотекстовыйПоиск.ПолучитьРежимРазделенияСоставныхСлов());
Попытка
ПолнотекстовыйПоиск.УстановитьКоличествоЗаданийИндексирования(1);
ПолнотекстовыйПоиск.УстановитьМаксимальныйРазмерИндексируемыхДанных(1048576);
ПолнотекстовыйПоиск.УстановитьРежимРазделенияСоставныхСлов(РежимРазделенияСоставныхСлов.НеИспользовать);
Сообщить(ПолнотекстовыйПоиск.ПолучитьКоличествоЗаданийИндексирования() = 1);
Сообщить(ПолнотекстовыйПоиск.ПолучитьМаксимальныйРазмерИндексируемыхДанных() = 1048576);
Сообщить(ПолнотекстовыйПоиск.ПолучитьРежимРазделенияСоставныхСлов() = РежимРазделенияСоставныхСлов.НеИспользовать);
Исключение
ОшибкаНастройки = ОписаниеОшибки();
ОшибкиВозврата = ВосстановитьСвоиНастройки(Старые);
Если ОшибкиВозврата <> "" Тогда
ВызватьИсключение ОшибкаНастройки + Символы.ПС + ОшибкиВозврата;
КонецЕсли;
ВызватьИсключение ОшибкаНастройки;
КонецПопытки;
ОшибкиВозврата = ВосстановитьСвоиНастройки(Старые);
Если ОшибкиВозврата <> "" Тогда
ВызватьИсключение "Не все исходные настройки восстановлены:" + Символы.ПС + ОшибкиВозврата;
КонецЕсли;
Сообщить(ПолнотекстовыйПоиск.ПолучитьКоличествоЗаданийИндексирования() = Старые.Задания);
Сообщить(ПолнотекстовыйПоиск.ПолучитьМаксимальныйРазмерИндексируемыхДанных() = Старые.Размер);
Сообщить(ПолнотекстовыйПоиск.ПолучитьРежимРазделенияСоставныхСлов() = Старые.СоставныеСлова);
КонецПроцедуры
Функция ВосстановитьСвоиНастройки(СтарыеНастройки)
Ошибки = Новый Массив;
Попытка
ПолнотекстовыйПоиск.УстановитьКоличествоЗаданийИндексирования(СтарыеНастройки.Задания);
Исключение
Ошибки.Добавить("Задания: " + ОписаниеОшибки());
КонецПопытки;
Попытка
ПолнотекстовыйПоиск.УстановитьМаксимальныйРазмерИндексируемыхДанных(СтарыеНастройки.Размер);
Исключение
Ошибки.Добавить("Размер: " + ОписаниеОшибки());
КонецПопытки;
Попытка
ПолнотекстовыйПоиск.УстановитьРежимРазделенияСоставныхСлов(СтарыеНастройки.СоставныеСлова);
Исключение
Ошибки.Добавить("Составные слова: " + ОписаниеОшибки());
КонецПопытки;
Возврат СтрСоединить(Ошибки, Символы.ПС);
КонецФункцииРазбор по шагам
Ограничить опыт отдельной монопольной базой Версия1 с одним учебным администратором. Первый запуск без подтверждения.
До первого setter сохранить все три прежних значения. Установить 1 задание, 1 МиБ данных, не разделять составные слова.
Проверить прочитанные значения. На файловой базе лимит заданий сохраняется, но дополнительные фоновые задания индексирования не запускаются.
Вернуть каждый исходный параметр независимо. При ошибке одной настройки продолжить попытки возврата остальных и сообщить все ошибки.
Это опыт настроек, не нагрузочный тест и не проверка эффективности нового поиска. Индекс в этом уроке не обновляется.
Как проверить результат
При успехе шесть булевых проверок Истина: три новых параметра и три восстановленных.
Восстановление подтверждается повторным чтением. При ошибке появляется исключение с параметрами, которые вернуть не удалось.
Ожидаемый результат
Полный пример ограниченных административных настроек с явным восстановлением и честной обработкой ошибок.
На что обратить внимание
Максимальный размер задаётся в байтах, а не в количестве товаров. Слишком маленький лимит исключает крупные данные из индекса.
Значение 1 не доказывает использование отдельного фонового процесса на файловой базе.
Возврат настройки не гарантирует восстановление уже изменённого индекса; этот опыт специально не выполняет индексацию между изменениями.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.