Как это устроено
Узнайте, как AACsearch находит товары быстро, безопасно и релевантно.
AACsearch — это поисковая система, которая работает как волшебник в магазине. Вы загружаете каталог товаров, AACsearch индексирует их, и когда покупатель печатает запрос, система почти мгновенно находит нужные товары.
Три простых слоя
AACsearch состоит из трёх основных слоёв:
1. Панель управления (видите вы)
Это место, куда вы заходите, чтобы:
- Загрузить товары
- Смотреть статистику поиска (сколько покупатели ищут, что они ищут)
- Настроить параметры поиска
- Получить код для установки виджета на сайт
2. API (слой между вами и поисковиком)
Это невидимый слой, который:
- Принимает товары, которые вы загружаете
- Проверяет ваши права доступа и лимиты
- Передаёт товары в поисковый движок
- Гарантирует безопасность и надёжность
Ключ безопасности: Мы никогда не выдаём свои главные ключи доступа наружу. Все операции проходят через наш API, как через охрану в магазине.
3. Поисковый движок (AACsearch)
Это сердце системы. Когда покупатель ищет:
- Запрос доходит до AACsearch
- AACsearch находит все совпадения по названию, описанию, характеристикам
- Результаты ранжируются по релевантности
- Ответ отправляется обратно (обычно за 10-50 миллисекунд)
Как товары попадают в поиск
sequenceDiagram
autonumber
participant Client as Вы
participant API as API-приёмник
participant DB as Очередь (PG)
participant W as Фоновый воркер
participant TS as Поисковый движок
Client->>API: POST /search/documents
API->>API: проверка авторизации и квоты
API->>DB: enqueueManySearchIngest()
API-->>Client: 202 Accepted
loop tick
W->>DB: SELECT необработанные строки
W->>TS: bulkUpsert(batch)
alt успех
W->>DB: markIngestRowsSuccess
else частичный сбой
W->>DB: markIngestRowsFailure + экспоненциальный backoff
end
endПочему очередь? Это гарантирует надёжность. Если что-то пойдёт не так, товары не потеряются — они останутся в очереди и переобработаются автоматически.
Как поиск находит товары
sequenceDiagram
autonumber
participant Client as Покупатель
participant API as API-приёмник
participant PC as Кэш политик
participant TS as Поисковый движок
participant A as Аналитика
Client->>API: POST /search ("красная рубашка")
API->>API: проверка ключа
API->>API: rate-limit (per-key, sliding 1 мин)
API->>PC: резолв плана/scope (LRU 60 с)
API->>TS: multi_search со scoped фильтром
TS-->>API: совпадения + фасеты
API-->>Client: очищенный JSON
API->>A: recordSearchUsage() (fire-and-forget)Преимущества такой архитектуры
✓ Быстро — результаты за 10-50 миллисекунд
✓ Надёжно — если сервер упадёт, данные не потеряются
✓ Безопасно — токены изолированы, доступ контролируется
✓ Масштабируется — обрабатывает миллионы товаров и поисков
✓ Не требует обслуживания — мы управляем инфраструктурой