Диаграммы последовательностей#
В данном разделе приведены диаграммы последовательности для основных операций LVM.
Диаграмма сравнения дескрипторов#
Схема обработки поискового запроса:
-
(1) Сервис API передаёт поисковый запрос сервису Python Matcher Proxy.
-
(2) Python Matcher Proxy передаёт запрос на обработку Luna Vinder Plugin.
-
(3) Luna Vinder Plugin проверяет фильтры из запроса на соответствие полям индекса.
-
(4) Luna Vinder Plugin отправляет запрос в сервис Luna Vinder Matcher.
Если фильтры совпадают с полями индекса:
-
(5) Luna Vinder Matcher использует дерево индекса для быстрого поиска.
-
(6) Luna Vinder Matcher находит списки дескрипторов, соответствующие заданным фильтрам.
-
(7) Luna Vinder Matcher выполняет сравнение дескрипторов.
-
(8) Luna Vinder Matcher возвращает результаты поиска.
Если фильтры не совпадают с полями индекса:
- (9) Luna Vinder Matcher возвращает ошибку Luna Vinder Plugin (например, "Неподдерживаемый фильтр").
Результат выполнения запроса:
-
(10) Luna Vinder Plugin возвращает сервису Python Matcher Proxy результаты обработки запроса или ошибку (в зависимости от предыдущего шага).
-
(11) Python Matcher Proxy возвращает окончательные результаты (или ошибку) API.
Диаграмма загрузки данных в Luna Vinder Matcher#
Схема обработки запроса:
-
(1) Пользователь создаёт проекцию в сервисе Luna Vinder Projector.
-
(2) Luna Vinder Projector возвращает пользователю уникальный идентификатор созданной проекции (
projection_id). -
(3) Пользователь настраивает индекс для проекции через сервис Luna Configurator. Здесь указывается используемая проекцию и список полей, на основе которых будет построен индекс.
-
(4) Luna Configurator отправляет конфигурацию индекса в сервис Luna Vinder Matcher.
-
(5) Luna Vinder Matcher запрашивает данные проекции у Luna Vinder Projector, используя
projection_id. -
(6) Luna Vinder Projector возвращает Luna Vinder Matcher конфигурацию проекции.
-
(7) Luna Vinder Matcher извлекает объекты из БД сервиса Events по фильтрам, заданным в проекции.
-
(8) БД Events возвращает Luna Vinder Matcher отфильтрованные данные (объекты, targets и дескрипторы).
-
(9) Luna Vinder Matcher загружает полученные данные в оперативную память.
-
(10) Luna Vinder Matcher строит дерево индекса на основе
composite_fieldsв указанном порядке.Во время синхронизации данных Luna Vinder Matcher недоступен для обработки запросов.
-
(11) Luna Vinder Matcher помечает индекс как готовый к обработке запросов.
После завершения синхронизации Luna Vinder Matcher становится доступным для запросов и начинает фоновую синхронизацию изменений.
-
(12) Luna Vinder Matcher периодически проверяет изменения в БД Events (фоновая синхронизация).
-
(13) БД Events возвращает Luna Vinder Matcher новые или обновлённые данные.
-
(14) Luna Vinder Matcher обновляет дерево индекса на основе новых данных.