Плагин сравнения для Python Matcher Proxy#
С помощью плагина сравнения LUNA Vinder Plugin сервис Python Matcher Proxy может перенаправлять запросы на сравнение, поступающие из сервиса API, либо в сервис Python Matcher, либо в сервис Matcher модуля LUNA Vinder Module. Принцип работы плагина и описание выбора сервиса, в котором будет выполняться поиск, описаны ниже.
Плагин сравнения уже встроен в Docker-контейнер сервиса Python Matcher Proxy. Необходимо только включить его использование (см. руководство по установке).
Описание работы плагина сравнения#
Каждый запрос на поиск похожих объектов представлен в виде комбинаций кандидатов и эталонов. Плагин обрабатывает каждую такую комбинацию как отдельный подзапрос следующим образом:
- Анализ запроса — плагин проверяет параметры запроса на совместимость с доступными проекциями и индексами LUNA Vinder Module.
- Выбор способа обработки — определение, может ли запрос быть обработан Matcher'ом модуля LUNA Vinder Module или должен быть направлен в сервис Python Matcher. При положительном решении запрос направляется в соответствующий экземпляр Matcher модуля LUNA Vinder Module.
- Формирование результата — при необходимости Python Matcher Proxy дополняет ответ данными из основной базы данных и возвращает пользователю.
Критерии выбора сервиса для сравнения#
Плагин сравнения анализирует каждый запрос и принимает решение о маршрутизации на основе следующих критериев:
1. Наличие подходящей проекции. Существует как минимум одна проекция с соответствующим источником данных (origin), а также совместимыми фильтрами и targets. 2. Доступность индекса. Должен существовать индекс в выбранной проекции. Если в проекции есть фильтры, но в индексе нет полей для этих фильтров, матчинг всё равно возможен по этой проекции, если фильтры в запросе совпадают с фильтрами проекции. В случае наличия составных полей в индексе, они должны охватывать все фильтры запроса. 3. Наличие полей targets. Все атрибуты из фильтров запроса, которые не совпадают с фильтрами проекции, должны присутствовать в списке полей targets выбранной проекции.
Если запрос не соответствует хотя бы одному из критериев, плагин сравнения перенаправляет его в Python Matcher для дальнейшей обработки.
В LUNA PLATFORM может использоваться несколько плагинов сопоставления. См. подробную информацию в разделе "Плагины сопоставления" руководства администратора LUNA PLATFORM.