Осуществляет проверку актуальности индекса полнотекстового поиска.
Синтаксис
ИндексАктуален()Полное описание, параметры и ограничения
МенеджерПолнотекстовогоПоиска.ИндексАктуален (FullTextSearchManager.IndexTrue)
МенеджерПолнотекстовогоПоиска (FullTextSearchManager)
ИндексАктуален (IndexTrue)
Доступен, начиная с версии 8.1.
Синтаксис:
ИндексАктуален()
Возвращаемое значение:
Тип: Булево.
Истина, если индекс полнотекстового поиска полностью соответствует текущему состоянию информационной базы.
Описание:
Осуществляет проверку актуальности индекса полнотекстового поиска.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Если режим полнотекстового поиска запрещен, то использование метода вызывает исключение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Найти только три собственных учебных товара, а не всю базу
СоздатьСписок создаёт настройки; первый поиск выполняется вызовом ПерваяЧасть. Список текущей порции и общее количество — разные значения.
Где и как запускать
Полный серверный общий модуль УчебныйПолнотекстовыйПоиск своей отдельной учебной базы.
Подготовка
Используйте только отдельную собственную конфигурацию УчебнаяКонфигурацияСинтаксиса с собственным справочником УчебныеТовары. Включите использование полнотекстового поиска у справочника и Наименование в своей учебной конфигурации.
Вручную создайте ровно три товара: Учебномаяк Книга, Учебномаяк Ручка, Учебномаяк Коробка. Код урока не создаёт и не записывает эти товары. Маркер Учебномаяк нужен, чтобы не искать реальные сведения.
Создайте серверный общий модуль УчебныйПолнотекстовыйПоиск с флагом Сервер, вставьте весь модуль выбранного урока. Из серверного обработчика своей учебной обработки вызовите УчебныйПолнотекстовыйПоиск.ВыполнитьПример().
Сначала вручную разрешите поиск и обновите индекс своей учебной базы либо используйте отдельный урок обновления. Для опытов поиска индекс должен быть актуален, пользователь должен иметь чтение всех трёх собственных товаров.
Для административных уроков нужен единственный пользователь УчебныйПользовательСинтаксиса, право Администрирование, монопольный сеанс без разделителей данных. В этих уроках используется только Версия1; Версия2 требует отдельной подготовки поискового сервера.
Первый запуск административного урока делайте с пустым подтверждением. Не используйте рабочую базу или копию с реальными данными. Обслуживание меняет индекс/настройки и может занимать время, но не должно подменяться удалением товаров.
Процедура ВыполнитьПример() Экспорт
Если НЕ ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ВызватьИсключение "Сначала обновите индекс своей отдельной учебной базы";
КонецЕсли;
Список = ПолнотекстовыйПоиск.СоздатьСписок("учебномаяк", 2);
Область = Новый Массив;
Область.Добавить(Метаданные.Справочники.УчебныеТовары);
Список.ОбластьПоиска = Область;
Список.ИспользованиеМетаданных = ИспользованиеМетаданныхПолнотекстовогоПоиска.НеИспользовать;
Список.ОграничиватьСтрокуПоиска = Истина;
Список.ПолучатьПредставление = Истина;
Список.ПолучатьОписание = Истина;
Список.ПорогНечеткости = 0;
Сообщить(Список.СтрокаПоиска = "учебномаяк");
Сообщить(Список.РазмерПорции = 2);
Сообщить(Список.ОбластьПоиска.Количество() = 1);
Сообщить(Список.ИспользованиеМетаданных = ИспользованиеМетаданныхПолнотекстовогоПоиска.НеИспользовать);
Сообщить(Список.ОграничиватьСтрокуПоиска);
Сообщить(Список.ПолучатьОписание И Список.ПолучатьПредставление);
Сообщить(Список.ПорогНечеткости = 0);
Список.ПерваяЧасть();
Сообщить(Список.НачальнаяПозиция() = 0);
Сообщить("В текущей порции: " + Строка(Список.Количество()));
Сообщить("Всего найдено: " + Строка(Список.ПолноеКоличество()));
Сообщить("Результаты усечены: " + Строка(Список.СлишкомМногоРезультатов()));
Для Индекс = 0 По Список.Количество() - 1 Цикл
РезультатПоиска = Список.Получить(Индекс);
Сообщить(РезультатПоиска.Метаданные = Метаданные.Справочники.УчебныеТовары);
Сообщить(ТипЗнч(РезультатПоиска.Значение) = Тип("СправочникСсылка.УчебныеТовары"));
Сообщить("Представление: " + РезультатПоиска.Представление);
Сообщить("Контекст: " + РезультатПоиска.Описание);
КонецЦикла;
КонецПроцедурыРазбор по шагам
Убедиться в актуальности уже подготовленного индекса. Создать поиск по маркеру с размером порции 2.
ОбластьПоиска содержит метаданные только собственного справочника. Поиск метаданных выключен, чтобы не получать конфигурационные команды вместо товаров.
Настройки описания и представления включить до ПерваяЧасть. Явно ограничить длину запроса, оставить нечёткость 0.
После ПерваяЧасть получить количество текущей порции, общее число и признак усечения. Обойти только допустимые индексы порции.
Для каждого результата прочитать объектную ссылку, метаданные, представление и контекст. Ничего не открывать и не записывать.
Как проверить результат
Булевы проверки настроек и типов Истина. При ровно трёх доступных проиндексированных товарах первая порция 2, всего 3, усечение Ложь.
Порядок Книги/Ручки/Коробки не фиксируется: индекс полнотекстового поиска не является сортировкой по наименованию.
Ожидаемый результат
Получена ограниченная реальная поисковая выдача с объяснением четырёх свойств её элементов.
На что обратить внимание
В ОбластьПоиска нельзя подставлять метаданные отдельного реквизита или табличной части; нужны основные объекты.
Результаты учитывают доступ пользователя. Пустой список может означать права, неактуальность или отсутствие индекса, а не обязательно отсутствие товара.
Элементы выдачи только для чтения. Изменить Представление не означает переименовать товар.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Получить HTML и XML выдачи, не исполняя её как код
ПолучитьОтображение возвращает либо строку HTML, либо объект ЧтениеXML в зависимости от значения перечисления. XML-чтение закрывается.
Где и как запускать
Полный серверный общий модуль УчебныйПолнотекстовыйПоиск своей отдельной учебной базы.
Подготовка
Используйте только отдельную собственную конфигурацию УчебнаяКонфигурацияСинтаксиса с собственным справочником УчебныеТовары. Включите использование полнотекстового поиска у справочника и Наименование в своей учебной конфигурации.
Вручную создайте ровно три товара: Учебномаяк Книга, Учебномаяк Ручка, Учебномаяк Коробка. Код урока не создаёт и не записывает эти товары. Маркер Учебномаяк нужен, чтобы не искать реальные сведения.
Создайте серверный общий модуль УчебныйПолнотекстовыйПоиск с флагом Сервер, вставьте весь модуль выбранного урока. Из серверного обработчика своей учебной обработки вызовите УчебныйПолнотекстовыйПоиск.ВыполнитьПример().
Сначала вручную разрешите поиск и обновите индекс своей учебной базы либо используйте отдельный урок обновления. Для опытов поиска индекс должен быть актуален, пользователь должен иметь чтение всех трёх собственных товаров.
Для административных уроков нужен единственный пользователь УчебныйПользовательСинтаксиса, право Администрирование, монопольный сеанс без разделителей данных. В этих уроках используется только Версия1; Версия2 требует отдельной подготовки поискового сервера.
Первый запуск административного урока делайте с пустым подтверждением. Не используйте рабочую базу или копию с реальными данными. Обслуживание меняет индекс/настройки и может занимать время, но не должно подменяться удалением товаров.
Процедура ВыполнитьПример() Экспорт
Если НЕ ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ВызватьИсключение "Сначала обновите индекс своей отдельной учебной базы";
КонецЕсли;
Список = ПолнотекстовыйПоиск.СоздатьСписок("учебномаяк", 2);
Область = Новый Массив;
Область.Добавить(Метаданные.Справочники.УчебныеТовары);
Список.ОбластьПоиска = Область;
Список.ИспользованиеМетаданных = ИспользованиеМетаданныхПолнотекстовогоПоиска.НеИспользовать;
Список.ОграничиватьСтрокуПоиска = Истина;
Список.ПолучатьПредставление = Истина;
Список.ПолучатьОписание = Истина;
Список.ПорогНечеткости = 0;
Список.ПерваяЧасть();
HTML = Список.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.HTMLТекст);
Сообщить(ТипЗнч(HTML) = Тип("Строка"));
Сообщить("Символов HTML: " + Строка(СтрДлина(HTML)));
Чтение = Список.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.XML);
Если ТипЗнч(Чтение) <> Тип("ЧтениеXML") Тогда
ВызватьИсключение "Ожидался документированный объект XML-чтения";
КонецЕсли;
КоличествоУзлов = 0;
Попытка
Пока Чтение.Прочитать() Цикл
КоличествоУзлов = КоличествоУзлов + 1;
КонецЦикла;
Исключение
ОшибкаЧтения = ОписаниеОшибки();
Попытка
Чтение.Закрыть();
Исключение
ВызватьИсключение ОшибкаЧтения + Символы.ПС + "Закрытие XML: " + ОписаниеОшибки();
КонецПопытки;
ВызватьИсключение ОшибкаЧтения;
КонецПопытки;
Чтение.Закрыть();
Сообщить(КоличествоУзлов > 0);
Сообщить("Чтение XML завершено и закрыто; HTML не исполнялся");
КонецПроцедурыРазбор по шагам
Настроить и выполнить первую порцию собственного поиска.
Запросить HTMLТекст: это строка разметки с подсветкой найденных слов. Проверить тип и вывести только её длину.
Запросить XML: это уже открытый ЧтениеXML. Обойти реальные узлы без предположений об именах элементов.
Закрыть XML и при успехе, и при ошибке. Если закрытие тоже не удалось, сохранить описание обеих ошибок.
Не вставлять HTML в неизвестный веб-контекст и не выдавать количество XML-узлов за количество товаров.
Как проверить результат
Проверка типа HTML и наличия XML-узлов Истина. Длины и число узлов выводятся фактически.
Количество узлов не обязано равняться 2 или 3, потому что XML содержит служебную структуру и свойства.
Ожидаемый результат
Показаны два разных формата представления и корректное владение XML-ресурсом.
На что обратить внимание
XML-объект — не строка для УстановитьСтроку: он уже получен от платформы.
HTML-подсветка является оформлением выдачи, не сохранением найденных объектов.
Урок не сохраняет файлы, не открывает внешние адреса и не выполняет скрипты.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.