64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
@startuml
|
||
mainframe api/v1/products Общая схема
|
||
Actor user
|
||
participant BackendSite
|
||
participant Sherlock
|
||
Database ElasticSearch
|
||
|
||
user -> BackendSite: Вводит запрос в поисковую строку
|
||
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
||
BackendSite -> Sherlock: REST POST api/v1/products
|
||
Sherlock -> Sherlock: Перевод запроса\nна второй язык
|
||
Sherlock -> Sherlock: Преобразование запроса\n в структуру и формирование\nзапроса для ElasticSearch
|
||
|
||
note over Sherlock
|
||
Отправка запроса в
|
||
ElasticSearch с доп
|
||
сортировкой по категориям
|
||
из Спектра
|
||
endnote
|
||
|
||
alt ElasticSearch ничего не вернул
|
||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||
ElasticSearch --> Sherlock: Получен пустой ответ
|
||
|
||
note over Sherlock
|
||
Отправляется доп.запрос
|
||
в ElasticSearch с меньшим
|
||
процентом вхождения
|
||
endnote
|
||
|
||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||
ElasticSearch --> Sherlock: Получен пустой ответ
|
||
Sherlock --> BackendSite: Получен пустой ответ
|
||
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
||
|
||
else Найдены товары
|
||
|
||
alt Есть товары спектр
|
||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||
note over ElasticSearch
|
||
Категории спектр поднимаются
|
||
наверх И товары внутри них
|
||
сортируются по скорингу
|
||
endnote
|
||
|
||
else Товаров спектр не найдено
|
||
|
||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||
note over ElasticSearch
|
||
Товары сортируются
|
||
по скорингу
|
||
endnote
|
||
end
|
||
|
||
ElasticSearch --> Sherlock: Передает отсортированный\nсписок товаров
|
||
Sherlock --> BackendSite: Список товаров
|
||
BackendSite --> user: Пользователь получает страницу:\nРезультаты поиска
|
||
|
||
end
|
||
@enduml |