Поиск

Процесс индексации
1. Автор обновляет контент в Studio.
2. Studio уведомляет Deployer об изменениях в конкретной цели (Target), которая представляет собой комбинацию сайта/среды. Затем:
- При предварительном обновлении Deployer проверяет
sandbox
и обрабатывает изменения (resolve changes), выполняя сравнение файлов между последней обработанной версией Git и последней версией в файлеsandbox
. - При публикации Studio перемещает изменения в
published
, а Deployer при доставке извлекает изменения.
3. Процессор цели (Target Processor) в Deployer отправляет запрос в Elastic Search с XML или содержимым для индексации.
Процесс запроса
1. Конечный пользователь запрашивает страницу или сервис-запрос в CMS Engine.
2. Компоненты CMS Engine, которым требуются запросы, отправляют запрос в Elastic Search, где к запросу будут добавлены простые фильтры, а затем выполнены.
Описание подсистемы поиска
Подсистема поиска состоит из двух микросервисов (search и search-orchestration) и непосредственно поискового движка (elastisearch).
Подсисетма предоставляет возможность добавить данные в поисковой движок и далее осуществлять поиск по данным, а также аггрегацию данных.

Сущность индекса (схема данных)
Итоговая структура документа (сущности):
{
"id": "coffee-cup",
"name": "Espresso-Cup",
"description": "<p>Very nice branded espresso cup.</p>",
"images": [
{
"type": "GALLERY",
"url": "https://uploads-ssl.webflow.com/5f4d4a1634bebb66e5a60983/6177c966a4bcb1dd342a16db_2021-10-26_11-24-35.png"
}
],
"attributeValues": {
"color": {
"id": "black",
"name": "Black"
}
},
"categories": {
// ключ это уровень категории в дереве каталога начиная с 0, гле 0 - уровень корневой категории
"0": {
"id": "root-category",
"name": "Root category",
"level": 0
},
"1": {
"id": "cat00001",
"name": "Category 1",
"parentId": "root-category",
"level": 1
},
"2": {
"id": "cat00002",
"name": "Category 2",
"parentId": "cat00001",
"level": 2
}
},
// ключ это идентификатор валюты из сервиса price
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": 8.00,
"90e5fed1-1eaa-4e45-8574-b687605817fd": 10.00
},
"stockStatus": "IN_STOCK"
}