AACSearch
Начало работы

Обзор платформы

Как AACSearch организует тенантов, индексы, API-ключи и биллинг и что происходит на каждом шаге обработки запроса.

AACSearch предоставляет управляемый поиск через консоль, REST API и SDK. Вы обращаетесь к индексам по логическому slug; внутренними именами хранилищ и инфраструктурными ключами управляет платформа.

Организации и индексы

Организация владеет своими индексами. Каждый slug уникален внутри организации — отдельных staging- или development-копий одного slug нет. API-ключ можно ограничить одним индексом и набором прав. Каждый запрос проверяет эти ограничения и доступ к документам до возврата результатов. Роли организации определяют доступ к приватным полям.

Изменение схемы проходит планирование и при необходимости фоновую пересборку. Опубликованный индекс переключается после готовности новой версии. Клиент продолжает использовать тот же логический slug.

Устройство индекса

В любом новом индексе уже есть такие поля:

ПолеТипКомментарий
external_idstringВаш идентификатор, уникальный внутри индекса
titlestring, опциональноУчаствует в query_by по умолчанию
contentstringОбязательно в каждом документе
urlstring, опционально, без индексацииКуда ведёт результат
source_typestring, фасетapi, webhook, connector и подобные
organization_idstring, фасетОбласть тенанта, подставляется платформой
tagsstring[], фасет, опциональноДешёвые фасеты и фильтры
indexed_atint64Поле сортировки по умолчанию
metadatastring, опционально, без индексацииПроизвольный JSON, хранится, но не ищется

Свои поля задаются при создании индекса: string, string[], int32, int64, float, bool, geopoint, reference, object, float[] (вектор) и auto. Поле может быть фасетным, сортируемым, опциональным, с infix-индексацией, с указанием локали или с блоком embed для автоэмбеддинга.

Путь поискового запроса

  1. Ключ извлекается из Authorization: Bearer — поиск по хешу, отозванные ключи отсекаются, загружаются scope-права и привязка к индексу.
  2. Проверяется лимит запросов для этого ключа (скользящее окно, отдельно по ключу).
  3. Индекс ищется внутри организации ключа; ключ, привязанный к одному индексу, не может обратиться к соседним.
  4. Применяются значения сохранённого профиля поиска либо профиль выбирается по A/B-корзине.
  5. Проверяются квота и функции тарифа; поиск учитывается в расходе.
  6. Движок выполняет запрос с добавленным фильтром тенанта.
  7. Запрос, задержка, число результатов и признак пустой выдачи пишутся в журнал; клики и конверсии прикрепляются позже через /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.

On this page