AACsearch

Как это устроено

Узнайте, как AACsearch находит товары быстро, безопасно и релевантно.

AACsearch — это поисковая система, которая работает как волшебник в магазине. Вы загружаете каталог товаров, AACsearch индексирует их, и когда покупатель печатает запрос, система почти мгновенно находит нужные товары.

Три простых слоя

AACsearch состоит из трёх основных слоёв:

1. Панель управления (видите вы)

Это место, куда вы заходите, чтобы:

  • Загрузить товары
  • Смотреть статистику поиска (сколько покупатели ищут, что они ищут)
  • Настроить параметры поиска
  • Получить код для установки виджета на сайт

2. API (слой между вами и поисковиком)

Это невидимый слой, который:

  • Принимает товары, которые вы загружаете
  • Проверяет ваши права доступа и лимиты
  • Передаёт товары в поисковый движок
  • Гарантирует безопасность и надёжность

Ключ безопасности: Мы никогда не выдаём свои главные ключи доступа наружу. Все операции проходят через наш API, как через охрану в магазине.

3. Поисковый движок (AACsearch)

Это сердце системы. Когда покупатель ищет:

  1. Запрос доходит до AACsearch
  2. AACsearch находит все совпадения по названию, описанию, характеристикам
  3. Результаты ранжируются по релевантности
  4. Ответ отправляется обратно (обычно за 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 миллисекунд
Надёжно — если сервер упадёт, данные не потеряются
Безопасно — токены изолированы, доступ контролируется
Масштабируется — обрабатывает миллионы товаров и поисков
Не требует обслуживания — мы управляем инфраструктурой

On this page