Files
plantUML/search/Общий процесс products.puml
2024-05-24 12:17:32 +03:00

64 lines
2.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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