Обзор платформы
Как AACSearch организует тенантов, индексы, API-ключи и биллинг и что происходит на каждом шаге обработки запроса.
AACSearch предоставляет управляемый поиск через консоль, REST API и SDK. Вы обращаетесь к индексам по логическому slug; внутренними именами хранилищ и инфраструктурными ключами управляет платформа.
Организации и индексы
Организация владеет своими индексами. Каждый slug уникален внутри организации — отдельных staging- или development-копий одного slug нет. API-ключ можно ограничить одним индексом и набором прав. Каждый запрос проверяет эти ограничения и доступ к документам до возврата результатов. Роли организации определяют доступ к приватным полям.
Изменение схемы проходит планирование и при необходимости фоновую пересборку. Опубликованный индекс переключается после готовности новой версии. Клиент продолжает использовать тот же логический slug.
Устройство индекса
В любом новом индексе уже есть такие поля:
| Поле | Тип | Комментарий |
|---|---|---|
external_id | string | Ваш идентификатор, уникальный внутри индекса |
title | string, опционально | Участвует в query_by по умолчанию |
content | string | Обязательно в каждом документе |
url | string, опционально, без индексации | Куда ведёт результат |
source_type | string, фасет | api, webhook, connector и подобные |
organization_id | string, фасет | Область тенанта, подставляется платформой |
tags | string[], фасет, опционально | Дешёвые фасеты и фильтры |
indexed_at | int64 | Поле сортировки по умолчанию |
metadata | string, опционально, без индексации | Произвольный JSON, хранится, но не ищется |
Свои поля задаются при создании индекса: string, string[], int32, int64, float, bool, geopoint, reference, object, float[] (вектор) и auto. Поле может быть фасетным, сортируемым, опциональным, с infix-индексацией, с указанием локали или с блоком embed для автоэмбеддинга.
Путь поискового запроса
- Ключ извлекается из
Authorization: Bearer— поиск по хешу, отозванные ключи отсекаются, загружаются scope-права и привязка к индексу. - Проверяется лимит запросов для этого ключа (скользящее окно, отдельно по ключу).
- Индекс ищется внутри организации ключа; ключ, привязанный к одному индексу, не может обратиться к соседним.
- Применяются значения сохранённого профиля поиска либо профиль выбирается по A/B-корзине.
- Проверяются квота и функции тарифа; поиск учитывается в расходе.
- Движок выполняет запрос с добавленным фильтром тенанта.
- Запрос, задержка, число результатов и признак пустой выдачи пишутся в журнал; клики и конверсии прикрепляются позже через
/events.
Именно шаги 1–6 объясняют, почему 403 обычно означает проблему с правами или тарифом, а не отсутствующий индекс.
Тарифы в двух словах
Лимиты берутся из биллинг-каталога: Free (10 000 поисков, 1 000 документов, 5 индексов, 3 ключа), Pro за $29 в месяц (500 000 поисков, 50 000 документов, 10 индексов, 10 ключей) и Enterprise (индивидуальная цена, 5 000 000 поисков, 1 000 000 документов, 100 индексов). Превышение списывается с предоплаченного кошелька поблочно; на Free превышения нет, поэтому работа останавливается на лимите.
Точные цифры, флаги функций и цены блоков — в разделах Ошибки и лимиты и Квоты и биллинг.
Управление индексами и ключами
REST API поддерживает создание индекса ключом организации со scope indexes:write. Ключ, привязанный к одному индексу, не может создавать соседние индексы. Изменения схемы проходят проверку и план миграции; если нужна пересборка, возвращается фоновая задача. Управляйте доступом ключей через консоль; scopes каждой операции указаны в OpenAPI.
Документация
AACSearch предоставляет управляемый поиск через API с проверкой доступа организации. Создавайте индексы, загружайте документы и ищите через консоль, REST API или SDK. Платформа применяет права доступа, квоты и аналитику.
Быстрый старт
Создайте индекс, выпустите ключ, загрузите документы и выполните первый поиск — целиком на curl.