Поисковый API
HTTP API для поиска
Как отправить запрос на поиск товаров через HTTP — параметры, примеры с curl и что вернёт AACsearch.
HTTP API для поиска
Отправляйте поисковые запросы на POST /api/search. Это основной способ поиска товаров через API.
Адрес: POST https://app.aacsearch.com/api/search
Авторизация: Authorization: Bearer ss_search_your_key
Параметры запроса
| Параметр | Обязательно? | Описание |
|---|---|---|
indexSlug | Да | Название вашего индекса (например, products) |
q | Да | Что ищет пользователь (например, wireless headphones) |
queryBy | Нет | Какие поля искать (по умолчанию: title,sku,brand,description) |
filterBy | Нет | Ограничить результаты (например, price:<500) |
facetBy | Нет | Получить статистику по полям (например, brand,category) |
sortBy | Нет | Упорядочить (по умолчанию: _text_match:desc) |
page | Нет | Номер страницы (начиная с 1, по умолчанию: 1) |
perPage | Нет | Товаров на странице (по умолчанию: 10, максимум: 100) |
highlightFields | Нет | Подсветить совпадения в этих полях |
includeFields | Нет | Возвращать только эти поля (для скорости) |
excludeFields | Нет | Исключить эти поля из ответа |
Примеры
Простой поиск
curl -X POST https://app.aacsearch.com/api/search \
-H "Authorization: Bearer ss_search_your_key" \
-H "Content-Type: application/json" \
-d '{
"indexSlug": "products",
"q": "wireless headphones",
"page": 1,
"perPage": 20
}'Поиск с фильтрами, сортировкой и статистикой
curl -X POST https://app.aacsearch.com/api/search \
-H "Authorization: Bearer ss_search_your_key" \
-H "Content-Type: application/json" \
-d '{
"indexSlug": "products",
"q": "headphones",
"filterBy": "availability:=in_stock && price:[50..200]",
"facetBy": "brand,categories",
"sortBy": "price:asc",
"page": 1,
"perPage": 20
}'Что возвращает поиск
{
"found": 142, // Всего найдено товаров
"page": 1, // Текущая страница
"outOf": 5000, // Всего товаров в индексе
"searchTimeMs": 4, // Время поиска (миллисекунды)
"hits": [
{
"document": {
"id": "prod-123",
"title": "Sony Wireless Headphones",
"brand": "Sony",
"price": 349.99,
"availability": "in_stock"
},
"highlights": [
{
"field": "title",
"snippet": "Sony <mark>Wireless</mark> <mark>Headphones</mark>"
}
],
"textMatchScore": 578730
}
],
"facetCounts": [
{
"fieldName": "brand",
"counts": [
{ "value": "Sony", "count": 45 },
{ "value": "Bose", "count": 28 }
]
}
]
}Что означают поля:
found— Сколько товаров найдено (для вашего запроса)hits— Найденные товары с деталямиhighlights— Совпадающие слова обёрнуты в теги<mark>для подсвечиванияfacetCounts— Статистика по брендам, категориям и т.д. для фильтров в UIsearchTimeMs— Как быстро прошёл поиск
Поиск всех товаров (wildcard)
Используйте q: "*" чтобы получить все товары — полезно при использовании фильтров:
{
"indexSlug": "products",
"q": "*",
"filterBy": "categories:=Electronics",
"sortBy": "price:asc"
}Вернёт все электроники, отсортированные по цене.
Советы по скорости
- Большие индексы (100К+ товаров): поиск на целое слово работает быстрее
- Много фильтров и фасетов: уменьшите
perPageили не запрашивайте фасеты на каждый поиск - Описания товаров: используйте
excludeFields: "description"при выводе списков - Автодополнение: используйте
perPage: 5иincludeFields: "id,title"для скорости
API для поиска
Как работает поиск в AACsearch — простой REST API для товаров, управление индексом и настройка фильтров.
Ограниченные токены для поиска
Как создать краткосрочный токен доступа для поиска определённых товаров — только товары в наличии, только доступная цена, только для одного пользователя.