<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис индексирования |
По умолчанию в Directum RX поиск объектов выполняется по базе данных. При необходимости можно использовать поисковую систему Elasticsearch для:
•поиска по критериям. Если в системе хранятся десятки и сотни миллионов документов, задач и заданий, то время поиска может увеличиваться, а также создается высокая нагрузка на СУБД. В этой ситуации рекомендуется выполнение поиска по критериям документов, задач, заданий и уведомлений перенести с СУБД на систему Elasticsearch. Она обеспечивает высокую скорость поиска при больших объемах данных;
•полнотекстового поиска. В СУБД нет поиска по содержимому документов, задач, заданий и уведомлений. Чтобы настроить поиск по фрагменту текста, необходимо установить и настроить Elasticsearch.
Объекты индексируются в Elasticsearch при помощи сервиса индексирования.
Сервис индексирования (IndexingService) – это сервис, который отвечает за индексирование документов, задач, заданий и уведомлений для поиска по критериям и полнотекстового поиска.
Для настройки поиска сначала необходимо установить систему Elasticsearch и сервис IndexingService, затем выполнить дополнительные настройки. После развертывания поисковой системы и подключения ее к Directum RX нужно запустить первоначальное индексирование с помощью утилиты InitialIndexing. Задача первоначального индексирования – загрузить в поисковую систему информацию обо всех объектах для поиска, которые есть в Directum RX на текущий момент. Также первоначальное индексирование можно запускать после восстановления системы из резервной копии, при переносе Directum RX или поисковой системы Elasticsearch на новый сервер.
В дальнейшем индексирование выполняется регулярно автоматически при создании или изменении содержимого или свойств документов, задач, заданий и уведомлений.
Пример 1. Схема работы сервиса индексирования при настроенном поиске по критериям на Elasticsearch:
1.Пользователь в веб-клиенте меняет карточку документа, например значение в поле Имя, и сохраняет карточку. После этого клиентское приложение отправляет веб-серверу запрос на изменение свойств документа.
2.Веб-сервер через очередь сообщений RabbitMQ отправляет запрос на индексирование измененного свойства.
3.Сервис IndexingService подготавливает данные для индексирования. Затем эти данные передаются поисковой системе Elasticsearch.
Пример 2. Схема работы сервиса индексирования при настроенном полнотекстовом поиске на Elasticsearch:
1.Пользователь в веб-клиенте создает версию документа. Клиентское приложение отправляет веб-серверу запрос на сохранение изменений.
2.Веб-сервер через очередь сообщений RabbitMQ отправляет запрос на индексирование.
3.Сервис индексирования (IndexingService) запрашивает содержимое документа из файлового хранилища с помощью сервиса хранилищ (StorageService).
4.Сервис хранилищ передает актуальное содержимое документа сервису индексирования.
5.Сервис IndexingService подготавливает данные для индексирования. Затем эти данные передаются поисковой системе Elasticsearch.
Установка и настройка сервиса
По умолчанию сервис устанавливается на компьютер вместе с веб-сервером.
Настройки сервиса задает администратор. Например, в настройках можно задать новый путь до лог-файла сервиса.
Для обеспечения стабильной и производительной работы поисковой системы рекомендуется выполнять регулярный мониторинг.
© Компания Directum, 2024 |