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