Перейти к содержанию

Диаграммы последовательностей#

В данном разделе приведены диаграммы последовательности для основных операций 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#

Диаграмма загрузки данных в Luna Vinder Matcher
Диаграмма загрузки данных в 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 обновляет дерево индекса на основе новых данных.