Сервис глобального поиска

Основы

Сервис глобального поиска (Global Search Service) создан для интеграции поисковой системы ElasticSearch c приложением Creatio. Назначение сервиса — поиск данных в приложении Creatio из командной строки. Поиск данных выполняется по всем разделам приложения, включая пользовательские, независимо от места запуска поиска — из главного меню либо из раздела.

Общие принципы работы 

Задачи сервиса глобального поиска:

  • Подписка клиента — создание индекса в ElasticSearch и сохранение связи индекс-приложение.
  • Отключение клиента — удаление по требованию индекса в ElasticSearch.
  • Участие в процессе индексации — получение информации из базы данных.

Особенности сервиса глобального поиска:

  • Поиск выполняется по всем полям записи — как текстовым так и справочным, а также по деталям Адреса (Addresses), Средства связи (Communication options) и Платежные реквизиты (Banking details).
  • Файлы и ссылки, прикрепленные на вкладке Файлы и примечания (Attachments and notes) страницы записи, могут быть найдены по названию либо по описанию.
  • Поисковые запросы обрабатываются с учетом распространенных опечаток и морфологии — учитываются разные формы слов, введенных в строку поиска. Поисковый запрос не чувствителен к регистру.
  • Результаты поиска отображаются по релевантности, как для всего списка результатов, так и при фильтрации найденных записей. Например, если поиск выполнялся из раздела, то в начале списка будут отображены записи этого раздела.
  • Если у пользователя нет прав доступа на определенную колонку объекта, то такая колонка не отображается на странице результатов глобального поиска.

Параметры поиска задаются при помощи системных настроек:

  • Вес объекта по умолчанию для глобального поиска (код GlobalSearchDefaultEntityWeight) и Вес первичной колонки по умолчанию для глобального поиска (код GlobalSearchDefaultPrimaryColumnWeight) — настройка правил отображения результатов поиска.
  • Отображать результаты поиска по частичному совпадению (код UseInexactGlobalSearch) — отображение в результатах поиска данных, которые найдены с учетом опечаток и морфологии.
  • Доля совпадения для отображения в результатах поиска, % (код GlobalSearchShouldMatchPercent) — регулирование выдачи результатов поиска по частичному совпадению и повышение вероятности найти данные при неточном поисковом запросе.

Схема работы 

Компоненты сервиса глобального поиска:

  • RabbitMQ — брокер сообщений.
  • ElasticSearch — поисковая система.
  • GS Database Server — база данных для конфигурирования компонентов глобального поиска.
  • GS Caching Server Redis — хранилище данных, которое используется для кэширования и быстродействия.
  • WebAPI — веб-сервис для конфигурирования компонентов глобального поиска.
  • Indexing Service — веб-сервис для обработки запросов точечного индексирования данных системы.
  • GS Scheduler — планировщик задач индексации данных из Creatio в ElasticSearch.
  • GS Worker — компонент для индексирования данных из Creatio в ElasticSearch по задачам компонента GS Scheduler.
  • GS Replay Worker — компонент для обработки результатов индексации (результаты работы компонента GS Worker).
  • GS Single Worker — компонент для точечной индексации данных бизнес-процессов в ElasticSearch по запросу бизнес-процесса.
  • GS Single Replay Worker — компонент для обработки исключений в процессе точечной индексации (результаты работы компонента GS Single Worker).
  • GS Single Task Worker — компонент для постановки задач компоненту GS Single Worker.
  • GS Queried Single Task Worker — компонент для формирования задач компоненту GS Single Worker.

Схема работы сервиса глобального поиска представлена ниже.

BezOU+GP.png

Масштабируемость 

Использование кластера баз данных позволяет выполнить масштабирование сервиса глобального поиска в крупных проектах. Описание кластеризации содержится в документации ElasticSearch.

Совместимость с продуктами Creatio 

Сервис глобального поиска имеет версии 1.4, 1.5, 1.6, 1.7, 2.0, которые совместимы со всеми продуктами Creatio версий 7.10 и выше.

Варианты развертывания 

Сервис глобального поиска разворачивается on-site и cloud.

Для приложений, развернутых on-site, необходимо выполнить предварительную настройку сервиса. Для настройки необходимы 2 сервера (физические или виртуальные машины), которые должны отвечать техническим требованиям. На серверах должна быть установлена операционная система Linux, которая официально поддерживает программное обеспечение Docker. Перечень операционных систем, которые поддерживает Docker, содержится в документации Docker.

Рекомендуем устанавливать актуальную версию сервиса глобального поиска.