Управление полнотекстовым поиском¶
Для полнотекстового поиска необходима индексация объектов Системы. Индексация означает передачу атрибутов объектов Системы в Подсистему полнотекстового поиска на основе Elasticsearch (8.19.15). Система извлекает и анализирует содержимое файлов, содержащихся в документах. Файлы индексируются по имени и содержимому при добавлении, изменении (добавлении новой версии), удалении. Система полнотекстового поиска использует Elasticsearch (8.19.15) и Tesseract (4.1.1), первый используется для индексации и поиска, второй – для распознавания содержимого файлов. В текущей реализации индексируются следующие типы файлов: TXT, DOCX, DOC, XLS, XLSX, PDF, JPG, PNG, TIF, TIFF.
Раздел Управление полнотекстовым поиском используется для управления индексацией и состоит из подразделов:
-
Управление индексацией, предназначенный для создания правил индексации в Системе;
-
Процесс индексации в Elastic, предоставляющий интерфейс отслеживания событий индексации;
-
Журнал логов индексации, включающий логирование событий при индексации.
Видимость раздела зависит от значения параметра sections (searchSettings) конфигурационного файла «config.json» Web-администратора (п. Параметры конфигурационного файла «config.json»).
Управление индексацией¶
Просмотр/редактирование существующих правил индексации и создание новых правил реализовано в подразделе Управление индексацией.
Для каждого правила отображается следующая информация:
-
название журнала;
-
типы файлов, попадающие под индексацию;
-
статус правила;
-
дата, начиная с которой файлы попадут под индексацию.
По умолчанию в Системе ничего не индексируется, т. к. список правил пуст.
Для создания нового правила необходимо выполнить следующие действия:
-
Перейти в раздел Управление полнотекстовым поиском в подраздел Управление индексацией.
-
Создать новое правило, определив журнал регистрации, для документов которого оно будет применяться.
-
Выбрать типы файлов, которые должны быть проиндексированы (поле множественного выбора).
-
Задать дату начала индексации.
Вышеперечисленные параметры создаваемого правила являются обязательными для заполнения.
-
Определить статус правила, активировав переключатель Активно в необходимое положение. Для запуска по созданному правилу процедуры индексации статус у правила должен быть Активное (в списке правил наименования неактивных правил выделяются серым цветом шрифта).
В Системе не может быть более одного активного правила с одним и тем же журналом регистрации, поэтому данная проверка будет выполняться при создании, редактировании правила или изменении его состояния. С одним журналом регистрации могут быть связаны только неактивные правила.
-
Сохранить введенные значения.
Новое правило будет создано.
В режиме редактирования правила (дважды нажать ЛКМ на запись или нажать кнопку [Изменить]) для изменения будет закрыто только поле со значением журнала регистрации, остальные поля будут доступны для изменения. В режиме редактирования в карточке правила будет добавлена статистическая информация: сколько файлов, соответствующих критериям правила, в данном журнале регистрации, сколько из них проиндексировано уже, сколько всего документов в журнале, файлы которых удовлетворяют правилу.
Для того чтобы изменить статус правила в режиме редактирования, необходимо нажать кнопку меню
и выбрать действие [Активировать]/[Деактивировать]. Снятие состояния Активно с правила приведет к остановке текущих задач на индексацию по этому правилу и изменению состояния чекбокса.
Удаление правил выполняется по нажатию кнопки меню
и выборе пункта [Удалить]. Удалить правило можно только при выполнении следующих условий:
-
правило деактивировано;
-
все задачи индексации по выбранному правилу остановлены;
-
в индексе 0 файлов, поэтому при удалении правила должна быть выполнена команда [Очистить индекс].
Индексация¶
В Системе должны быть загружены задачи планировщика: «Управление индексацией» (ReindexingManagerPackage.xml), «Переиндексация» (ReindexingPackage.xml) (п. Работа с заданиями планировщика).
Система позволяет провести индексацию по активному правилу. Если по правилу уже была проведена индексация данных,
необходимо сначала удалить из индекса данные. Для того чтобы выполнить операцию по удалению из индекса данных, необходимо нажать кнопку меню
и выбрать действие [Очистить индекс]. Данная операция доступна, если статус индексации Остановлена и индекс не пустой.
Индексация запускается при выборе правила, нажатии кнопки [Индексировать] и подтверждении выбранного действия. Для выполнения операции правило должно быть активным, статус индексации должен быть Остановлена.
Правило работает только для тех файлов, которые заново направляются на переиндексацию.
После добавления правила файлы, удовлетворяющие данному активному правилу, будут проиндексированы, т. е. при появлении нового файла (версии файла), удовлетворяющего активному правилу, он автоматически индексируется, также автоматически будет проиндексирован файл при изменении метаданных файла.
Мониторинг индексации и журнал логов индексации¶
Мониторинг индексации¶
В разделе Процесс индексации в Elastic представлен интерфейс для визуального контроля операции индексации.
В блоке Подготовка к индексации отображаются следующие параметры:
-
Число задач на загрузку файлов;
-
Число задач на распознавание файлов;
-
Число задач на индексацию.
Блок Процесс индексации в Elastic содержит следующую информацию:
-
Статус кластера – цветовая индикация плашки (green/yellow/red);
-
Среднее время ожидания задачи в очереди;
-
Количество задач в очереди на исполнение;
-
Количество проиндексированных документов.
Журнал логов индексации¶
Подраздел Журнал логов индексации предназначен для отображения логов индексации. В таблице отображаются записи, статус которых: Успешно, Ошибка или Предупреждение.
Из журнала доступна повторная индексация для заданий, имеющих статус Ошибка. Запуск выполняется при нажатии кнопки [Переиндексировать ошибки].
Настройка поиска по атрибутам¶
В Системе предоставлена возможность настройки атрибутов поиска. Для настройки поиска по атрибутам необходимо выполнить следующие действия:
- Добавить атрибуты поиска на Сервер контента.
На Сервере контента информация о нужных тегах (метаданных), которые будут отправляться в ХК, берется из репозитория в файлах «ContentAttributes.xml», «ExtraContentAttributesNew.xml».
Для того чтобы добавить новые поля документа, необходимо отредактировать файл «ContentAttributes.xml» и перегенерировать репозиторий. Для этого необходимо запустить «RGen.exe», скопировать файлы формата XML, в которых расположен репозиторий, перезапустить Сервер контента. Добавленные поля должны появиться во втором файле «ExtraContentAttributesNew.xml». Например, в файл «ContentAttributes.xml» можно добавить следующие атрибуты:
<OBJECT name="DOCUMENTFILE">
<TAGS>
// ...
<!--Краткое содержание документа→
<TAG name="Annotation" path="DocumentID.Annotation" />
<!--Примечание документа-->
<TAG name="Note" path="DocumentID.Note" />
// ...
</TAGS>
</OBJECT>
2. В файле «customQuery.json» кастомным запросом указать поля, по которым планируется производить поиск.
{ "multi_match": { "query": "SEARCH_TERM_VALUE", "type":
"bool_prefix", "fields": [ "content.content^3",
"metadata.Note", "metadata.Annotation" ] } }
3. Скопировать файл «customQuery.json» на стенд с поиском, рядом с файлами сервисов поиска формата YML.
4. В файле «docker-compose.dev.yml» для сервиса поиска (landocs.search.api) добавить:
volumes:
- .customQuery.json:/app/customQuery.json
5. Пересоздать контейнер «landocs.search.api».
Настройка поиска по атрибутам будет завершена.





