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