AACSearch / руководство
Интеллект запросов
Подсказки во время ввода, подсказки до начала ввода, именованные пресеты параметров поиска и поиск на естественном языке.
Интеллект запросов — слой между пустой строкой поиска и отправленным запросом: что показывать до первого символа, что предлагать во время ввода, именованные пресеты с готовыми наборами параметров поиска и поиск на естественном языке, который превращает «красные кроссовки до 5000» в настоящие параметры поиска.
presearchQueries и suggestQueries работают с поисковой областью доступа и
вызываются из браузера с поисковым или браузерным ключом.
Пресеты и NL-модели — конфигурация, им нужен полный ключ. Идентифицируйте
посетителя заголовком X-NOVA-SESSION-ID и параметрами запроса x_user_id /
x_anonymous_id — недавние запросы и граф запросов ведутся по сессии.
Подсказки во время ввода
GET /collections/{collectionName}/suggest?q=… возвращает кандидатов для
введённого префикса. Кандидаты приходят из популярных запросов коллекции, её
документов, связанных сущностей каталога (бренды, категории), продолжений
последнего запроса сессии из графа запросов, подсказок поисковых правил и
недавних запросов сессии — и ранжируются по ожидаемой полезности, а не только
по совпадению строк.
| Параметр | Назначение |
|---|---|
q (обязателен) | введённый префикс |
limit | максимум подсказок в ответе |
last_query | предыдущий запрос сессии, для продолжений |
curl "https://api.aacsearch.com/v1/collections/products/suggest?q=iph&last_query=case" \
-H "X-NOVA-API-KEY: $BROWSER_KEY"const suggestions = await client.queryIntelligence.suggestQueries({
collectionName: "products",
q: "iph",
lastQuery: "case",
});Подсказки до ввода
GET /collections/{collectionName}/presearch отвечает на вопрос «что
показывать в пустой строке поиска»: недавние запросы сессии или пользователя,
контекстные продолжения последнего запроса и тренды коллекции. Пустые секции
не возвращаются. В ответе приходит presearch_id; когда посетитель выбирает
пункт, отправьте событие suggestion_select с query_id равным этому
presearch_id, чтобы цикл измерялся (см. события).
Пресеты
Пресет — именованный сохранённый набор параметров поиска: значением служит
либо объект параметров поиска, либо набор multi-search
запросов. Пресеты позволяют не зашивать параметры в клиентский код: витрина
запрашивает набор по идентификатору вместо жесткого query_by, facet_by и
sort_by, и набор можно поменять без передеплоя.
| Операция | Эндпоинт |
|---|---|
retrieveAllPresets | GET /presets |
retrievePreset | GET /presets/{presetId} |
upsertPreset | PUT /presets/{presetId} — создать или заменить |
deletePreset | DELETE /presets/{presetId} |
await client.presets.upsertPreset({
presetId: "category-shoes",
body: {
value: {
query_by: "title,description,brand",
filter_by: "category:=shoes && in_stock:true",
sort_by: "popularity:desc",
},
},
});Для конфигураций витрины в разрезе коллекции с неизменяемыми опубликованными версиями используйте профили поиска; пресеты — их более лёгкий глобальный аналог.
Поиск на естественном языке
Параметр поиска nl_query превращает фразу посетителя в обычный поиск: модель
переводит её в q, filter_by и sort_by, а ответ содержит перевод в
parsed_nl_query (с nl_query_debug=true — и сырой ответ модели). Это
понимание запроса, а не чат — для ответов по вашим документам используйте
ассистента.
Какая модель разбирает запрос — вопрос конфигурации: NL-модели поиска —
именованные конфигурации с model_name, учётными данными провайдера
(api_key, api_url, Cloudflare account_id, поля GCP Vertex AI
project_id/access_token и другие), system_prompt и параметрами сэмплирования
(temperature, top_p, top_k, stop_sequences, max_output_tokens).
Параметр закрывает функция тарифа nl_search; сами вызовы модели
оплачиваются кредитами.
| Операция | Эндпоинт |
|---|---|
retrieveAllNLSearchModels | GET /nl_search_models |
createNLSearchModel | POST /nl_search_models |
retrieveNLSearchModel | GET /nl_search_models/{modelId} |
updateNLSearchModel | PUT /nl_search_models/{modelId} |
deleteNLSearchModel | DELETE /nl_search_models/{modelId} |
const result = await client.documents.searchCollection({
collectionName: "products",
q: "красные кроссовки до 5000",
nlQuery: true,
});
// result.parsed_nl_query показывает, как фраза превратилась в q / filter_by / sort_byУчётные данные — только на сервере
Модели управляются полным ключом и содержат учётные данные провайдеров — они не должны быть доступны из браузера.