Рецепты
Готовые "копировать-вставить" рецепты для самых частых паттернов AACsearch SDK — автокомплит, фасетный поиск, листинги товаров, трекинг кликов, scoped токены, мульти-аренда, мульти-локали и graceful failure.
Эти рецепты предполагают что вы уже прошли настройку Browser SDK и у вас есть search-only API-ключ (ss_search_*). Все примеры типизированы под @aacsearch/client (Node + браузер) — адаптируйте под другие языки по необходимости.
Выберите рецепт
| Рецепт | Что получите |
|---|---|
| Автокомплит | Дебаунс-поиск по мере ввода с выпадающим списком предложений |
| Фасетный поиск | Боковая панель фильтров с множественным выбором, ведомая счётчиками фасетов AACsearch |
| Страница листинга товаров | Server-rendered PLP с фильтрами, сортировкой, пагинацией |
| Бесконечный скролл | Load-more пагинация через useInfiniteQuery из TanStack Query |
| Аналитика кликов | Трекинг кликов и конверсий через events/track |
| Рекомендации при пустом результате | Резервный контент когда found: 0 |
| Запасной поиск | Деградация по плавной кривой когда AACsearch недоступен |
| Scoped B2B-каталог | Ценовые тиры и видимость SKU per-customer через scoped токены |
| Изоляция арендаторов в маркетплейсе | Мульти-вендорный маркетплейс где каждый сторфронт видит только свои SKU |
| Мультилокальный каталог | Те же товары на en/de/es/fr/ru — один индекс с фасетом locale |
Общая настройка
Каждый рецепт предполагает один из этих клиентов:
// Browser-safe (только поиск)
import { SearchClient } from "@aacsearch/client";
const client = new SearchClient({
baseUrl: process.env.NEXT_PUBLIC_AACSEARCH_BASE_URL!,
apiKey: process.env.NEXT_PUBLIC_AACSEARCH_SEARCH_KEY!, // ss_search_*
indexSlug: "products",
});// Server-only (полный CRUD)
import { AdminClient } from "@aacsearch/client";
const admin = new AdminClient({
baseUrl: process.env.AACSEARCH_BASE_URL!,
apiKey: process.env.AACSEARCH_ADMIN_KEY!, // aa_admin_*
projectId: process.env.AACSEARCH_ORG_ID!,
});Образцовый датасет, используемый в рецептах:
type Product = {
id: string;
external_id: string;
title: string;
description: string;
brand: string;
categories: string[];
price: number; // major units, decimal
in_stock: boolean;
locale: "en" | "de" | "es" | "fr" | "ru";
organization_id: string; // для multi-tenant рецептов
customer_tier?: "retail" | "wholesale" | "vip"; // только B2B
};Каждый рецепт можно запустить независимо. У них общие соглашения (датасет, имена env-переменных, нейминг), но любой можно скопировать без настройки остальных.
Чего здесь нет
- Управление индексами — см. SDK reference
- Настройка авторизации — см. API-ключи
- Основы обработки ошибок — см. Ошибки и rate limits
- Реализация коннекторов — см. Connector API lifecycle
Связанные
Swift SDK
Как использовать AACsearch в iOS, macOS и visionOS — установка пакета, поиск товаров, управление индексами.
Автодополнение
Поиск с задержкой по мере ввода и выпадающим списком подсказок. Использует `useDeferredValue` для React-идиоматичного debounce и `multi-search` для получения товаров и категорий в одном запросе.