AACSearch / руководство
Данные и индексация
Коллекции и схемы, браузер документов, импорт и экспорт, коннекторы, CMS-хранилища и миграция из Algolia.
Коллекции
/dashboard/collections показывает коллекции организации и их состояние с
первого взгляда: число документов и их долю, бейджи возможностей для
searchable, faceted и semantic (с векторами) коллекций, а также
сигнал «needs attention», вычисляемый по схеме. Плитки статистики считают
коллекции, документы и индексируемые поля; четвёртая плитка показывает
Need attention, если у какой-либо коллекции пустой индекс, нет полей для
поиска или нет фильтров, и Semantic-ready (с подсказкой) в остальных случаях.
- Поиск и сортировка — по имени или полю: сначала новые / по имени / по числу
документов / требующие внимания. Нажмите
/, чтобы перейти к полю поиска, и Esc, чтобы очистить его. Выбранная сортировка и вид (таблица или карточки) запоминаются в браузере. - Действия над строкой открывают коллекцию, её документы, предпросмотр поиска, редактор схемы, копируют имя или JSON схемы и удаляют коллекцию.
- Создание, редактирование и удаление доступны владельцу и администратору. Участник видит эти кнопки неактивными с указанием причины, а не скрытыми.
- Удаление коллекции удаляет её документы и отключает поисковые правила, синонимы и наборы курирования, которые на неё ссылаются. Об этом сказано в подтверждении; действие необратимо.
- В пустом состоянии предлагаются New collection и Guided setup (быстрый старт).
Создание коллекции
/dashboard/collections/new — мастер из трёх шагов:
Имя и настройки
Имя, допустимое в URL; необязательный пресет (Products, Articles,
Web pages, Blank), который заменяет уже набросанные поля; поле
сортировки по умолчанию; разделители токенов; символы для индексации;
переключатель вложенных полей (включается автоматически при появлении поля
object) и блок метаданных в JSON.
Поля
Редактор полей. Доступные типы: string, string[], int32, int32[],
int64, int64[], float, float[], bool, bool[], geopoint,
geopoint[], object, object[], string*, image и auto; у каждого
есть флаги Facet, Index, Optional и Sort (Sort недоступен для
типов, которые нельзя сортировать). Имена полей должны быть уникальными и
непустыми; фасет и сортировка отклоняются для типов, которые их не
поддерживают; неиндексируемое поле должно быть также необязательным; поле
сортировки по умолчанию должно быть объявленным полем int32, int64,
float или сортируемой строкой и не может быть необязательным; для полей
object нужно включить вложенные поля.
Проверка и создание
Показывает точное тело POST /collections, выводит ошибки валидации в
реальном времени и после успешного создания открывает новую коллекцию.
Страница коллекции
/dashboard/collections/{name} показывает схему, предпросмотр документов,
панель тестирования выдачи, готовые примеры кода и импорт. Вкладки отражаются
в URL (?tab=). Плитки статистики охватывают документы, поля (с подсказкой
searchable/faceted/sortable), время создания и сортировку по умолчанию, а также
вложенные поля, число векторных полей и разделители. Над вкладками появляется
список проблем, если схема плохо подходит для поиска, или пометка о том, что для
этой коллекции доступен семантический поиск и поиск по изображениям. Действия
открывают документы, редактор схемы, предпросмотр поиска, поисковую площадку
(playground), граф запросов, подтверждение удаления, а также копируют имя или
JSON схемы.
- Схема — обозреватель полей с полем «find a field or type», фильтрами по
признакам с множественным выбором (searchable, faceted, sortable, optional,
vector, needs a look) и счётчиками в реальном времени, сворачиваемыми группами
prefix.*и столбцом «In the data» по результатам фасетной пробы (число значений, ограничение 50+, покрытие и значений на документ, «never populated»). Из каждой строки можно скопировать имя поля или отфильтровать по нему браузер документов. - Документы — поле поиска по полям
query_byиз схемы, строка «found · search_time_ms · showing the first 20», раскрывающиеся строки с исходным JSON и переход Open in Documents, который переносит запрос. - Примеры кода — четыре вкладки языков (cURL, TypeScript, Python, PHP) с копируемыми фрагментами для создания коллекции, импорта документов и поиска.
- Импорт — область для JSONL (вставка, перетаскивание или выбор файла, до 8 MB) с действием при конфликте (upsert / create / update / emplace) и проверкой строк на стороне клиента, которая блокирует импорт при ошибках разбора, отсутствии id или необъявленном поле. Это не диалог импорта с шестью вкладками из браузера документов: он наполняет одну коллекцию вставленным JSONL.
Редактирование схемы
/dashboard/collections/{name}/edit выполняет PATCH /collections/{name}.
Экран состоит из двух частей:
- Существующие поля — имя, тип, флаги и локаль, с чекбоксом Drop, который зачёркивает строку.
- Новые поля — тот же редактор полей, изначально пустой.
Изменение типа или флагов поля выражается как удаление и повторное добавление под тем же именем в одном запросе. Карточка проверки показывает точное тело PATCH и блокирует сохранение при ошибках валидации — в том числе при удалении поля сортировки по умолчанию без его повторного добавления. Удаление любого поля сначала требует подтверждения, несохранённые изменения защищены от потери, а если API отклоняет запрос, сохранение завершается ошибкой, показанной рядом с формой.
Документы
/dashboard/documents — браузер документов одной коллекции. У движка нет
эндпоинта «вернуть всё», поэтому экран выполняет поиск с q=* и накладывает
поверх него фильтры.
- Таблица — закреплённый столбец выбора всех строк, id документа, выбранные столбцы данных и действия над строкой. Если поле похоже на изображение, в ячейке выводится миниатюра, а для длинных значений — подсказки. Сортировка доступна только по сортируемым полям схемы, не являющимся массивами.
- Фильтры — фасеты, вычисленные по данным (до 8 фасетов на запрос, по 20
значений в каждом; закреплённые чипы запоминаются для каждой коллекции), поле
для выражения
filter_byи панель аналитики, которая отмечает мёртвые, константные и похожие на идентификаторы фасеты, а также поля со слишком большим числом различных значений для использования в качестве фильтра. - Выбор столбцов — поиск и полосы заполненности по каждому полю, со сбросом Smart к выбору по умолчанию.
- Пагинация — 10 / 25 / 50 / 100 / 250 на странице; в подвале показаны
диапазон, число активных фильтров и
search_time_msдвижка. - Состояние в URL — коллекция, запрос, фасеты, исходный фильтр, сортировка,
страница и размер страницы передаются через строку запроса, поэтому
представлением можно поделиться или добавить его в закладки.
?pin=field— односторонняя глубокая ссылка, которая открывает экран с этим фасетом на панели фильтров; выбранный набор закреплённых фасетов хранится в браузере и не записывается обратно в URL. - Плотность — переключатель компактных строк и панель аналитики, состояние которой (открыта или закрыта) запоминается.
Импорт
Диалог импорта содержит шесть вкладок:
| Вкладка | Что принимает |
|---|---|
| Text | JSONL, массив JSON или CSV (преобразуется в браузере). |
| File | Те же форматы в виде файла, а также фид Яндекс Маркета (.yml / .xml, при необходимости .gz) любого размера. |
| Website | URL, обходится на один уровень вглубь, до 100 страниц. |
| Sitemap | URL карты сайта, до 100 страниц. |
| YML feed | URL фида Яндекс Маркета, без ограничения на число страниц. См. YML-фиды. |
| YouTube | Видео, индексируется с названием, автором, миниатюрой и расшифровкой. |
Каждая вкладка создаёт задание загрузки (POST /ingest-jobs), которое экран
опрашивает каждые две секунды, показывая статус, счётчики fetched / imported /
failed и первые ошибки. Небольшие пакеты до 100 документов со строковыми id
также проходят через асинхронный путь; более крупные данные или данные с
«грязными» значениями используют синхронный
POST /collections/{name}/documents/import.
Параметры импорта — это действие записи — upsert (по умолчанию), create,
update, emplace — и способ обработки значений, тип которых не соответствует
схеме: поведение движка по умолчанию, coerce_or_reject, coerce_or_drop,
drop или reject.
В заголовке также есть модальное окно Ingest via API с эквивалентами того же
импорта (action=upsert) на cURL, TypeScript и Python и ссылкой на Settings →
API keys — на случай, если импорт нужно автоматизировать скриптом.
Экспорт
- Export all скачивает коллекцию в формате JSONL, при необходимости с фильтром, и сообщает, сколько строк записано.
- Export selected скачивает только выбранные документы по id.
- Delete selected удаляет их одним запросом и сообщает, сколько документов удалено.
- Строку можно скопировать по id, удалить или открыть в панели документа с отображением по полям, переключателем View raw JSON / Copy JSON и собственной кнопкой удаления.
Задания загрузки
Под браузером расположена панель с 30 последними заданиями загрузки для коллекции — задание, коллекция, источник, статус, создано, fetched, imported, failed. Пока какое-либо задание в очереди или выполняется, панель обновляется каждые три секунды; упавшее задание можно перезапустить, а строку задания — удалить (проиндексированные документы остаются). Для заданий Яндекс Маркета также показываются курсор возобновления и число проходов.
Ответ 429 от квоты вместо таблицы выводит отдельное состояние «quota exceeded»
со временем сброса.
Источники (коннекторы)
/dashboard/sources показывает коннекторы, которые наполняют коллекции; сначала
идут проблемные. На каждой карточке — бейдж статуса, провайдер и целевая
коллекция, режим синхронизации и cron, последняя синхронизация (или «never
synced»), последняя ошибка, замаскированный секрет, бейдж disabled, если
коннектор выключен, и бейдж quiet, если включённый источник не
синхронизировался больше суток и не сообщает об ошибке. Действие на карточке
открывает документы, которые записывает этот источник.
Счётчики одновременно служат фильтрами (All / Error / Syncing / Paused); каждый
неактивен, если его значение равно нулю. Текстовый фильтр появляется, когда
источников не меньше пяти (/ переводит на него фокус, Esc очищает). Кнопка
Refresh в заголовке перечитывает список, при ошибке загрузки показывается
баннер с Retry, а пока что-либо синхронизируется, весь список обновляется
каждые четыре секунды.
/dashboard/sources/new связывает одного провайдера с коллекцией:
- Name и Collection — поле коллекции содержит ссылку на её создание, если коллекции ещё нет.
- Provider —
bitrix,bitrix24,prestashop,woocommerce,yml,sitemapилиcustom. - Sync mode —
push(CMS отправляет данные на вебхук коннектора) илиpull(платформа забирает данные по URL с токеном). - Pull URL и pull token — показываются в режиме pull; токен вводится в
поле пароля и соответствует параметру модуля
pull_token, а не API-ключу тенанта. - Schedule — cron-выражение; подсказка указывает, что поддерживаются
расписания
*/15 * * * *и0 3 * * *. - Enabled, кнопка Cancel и проверка обязательных полей при отправке.
После создания секрет подписи показывается один раз вместе с id коннектора
и URL вебхука ({API_URL}/v1/connectors/{id}/webhook), на который отправляет
данные модуль CMS; у каждого значения есть кнопка копирования, а также действия
Open source / Back to list. Модули CMS аутентифицируются HMAC-заголовками,
а не API-ключом.
/dashboard/sources/{id} позволяет редактировать коннектор и показывает его
историю. Строка статуса сообщает провайдер → коллекцию, последнюю синхронизацию
(или «never synced») и «updating…» во время синхронизации, рядом с бейджами
статуса, id и замаскированного секрета. В заголовке есть Refresh,
Open documents (браузер, отфильтрованный по коллекции коннектора) и
Delete, в подтверждении которого указано, что история синхронизаций удаляется,
а проиндексированные документы остаются.
- Форма включает имя, режим синхронизации, расписание, URL и токен для pull (пустой токен сохраняет текущий) и переключатель включения. URL вебхука доступен только для чтения, а сохранённая ошибка показывается прямо в форме.
- Jobs — последние 30 заданий коннектора со статусом, типом, временем создания, статистикой (accepted / applied / deleted / failed / fetched / imported) и ошибкой; строка открывает панель со временем завершения, вычисленной длительностью, всеми парами ключ/значение статистики, ошибкой и кнопками копирования id задания и JSON статистики.
- Journal — последние 50 документов, затронутых коннектором, с внешним id, id документа, отметками времени удаления и обновления и кнопкой Load more.
Пока коннектор синхронизируется или задание находится в очереди либо выполняется, экран опрашивается каждые три секунды, и опрос никогда не перезаписывает несохранённые изменения формы.
Удаление коннектора удаляет его историю синхронизаций, но оставляет проиндексированные документы на месте.
Интеграции
/dashboard/integrations — это каталог, а не экран данных. Он объединяет:
- CMS stores — подключения через модули, см. ниже.
- Migrate from Algolia — импортёр.
- Live data sources — провайдеры, для которых уже есть коннектор; у каждого есть бейдж «Module: status» или «Connector API» и действие Add in Sources.
- Available now — девять плиток: модуль 1С-Битрикс, SDK для Python, PHP и Go, MCP-сервер, REST API и виджеты, у каждой свой копируемый фрагмент кода.
- Request access — OAuth-коннекторы, которые ещё не запущены (Notion, Google Drive, Dropbox, OneDrive, Box, Confluence, Intercom, SharePoint, Zendesk, S3, Cloudflare R2). Они намеренно помечены как недоступные и открывают предзаполненное письмо с запросом; в заголовке страницы также есть общая ссылка Request a connector.
- Built-in importers — карточка со ссылкой на Documents, где можно вставить или загрузить JSONL, JSON и CSV.
Каталог статичен: он не читает состояние коннекторов вашей организации, поэтому воспринимайте плитку как «такая интеграция существует», а не «она подключена».
CMS-хранилища
/dashboard/integrations/cms подключает модуль CMS с помощью одного ключа
установки и публикует настройки поиска для каждого магазина. В заголовке есть
Refresh и ссылки на Subscription and payments и Sync history.
Подключение
Название магазина (120 символов), origin сайта, платформа и окружение
(production / staging). Возвращённый ключ установки показывается
один раз, с подтверждением «I saved the key».
Карточки установок
Показывают статус, вычисленный по последнему контакту модуля и применённой ревизии — Disconnected, Waiting for module, Applying settings или Connected, — а также origin, провайдера, окружение, последнюю ошибку, последний контакт и версии модуля/CMS. Disconnect отзывает ключ.
Команды
Reindex catalog, Sync changes и Discover catalogs ставятся в очередь для модуля с ключом идемпотентности; пока команда в очереди или выполняется, они неактивны. Последние пять команд показывают статус, прогресс, ошибку и действие Cancel и опрашиваются, пока находятся в очереди или выполняются. Результаты поиска обновляются только после того, как AACSearch обработает полученные данные.
Настройки
Локаль и валюта для каждого магазина; переключатели поиска в существующей теме, умных фильтров, рекомендаций и виджетов AACSearch; действие Add discovered stores; и привязки источников, которые выбирают существующий коннектор или создают отдельный («Create a data source for this catalog» создаёт коллекцию по обнаруженной схеме, а затем push-коннектор, названный по магазину и каталогу). Можно прикрепить необязательный поисковый пресет и модель рекомендаций. Публикация отправляет конфигурацию с ожидаемой ревизией, поэтому два администратора не могут незаметно перезаписать изменения друг друга.
Миграция из Algolia
/dashboard/migrate-algolia — одноразовый импортёр из четырёх шагов —
Upload → Review → Apply → Done — со ссылкой Quick start в заголовке.
Upload
Принимает имя целевой коллекции (автоматически выводится из имени файла
конфигурации), JSON настроек Algolia (файл или вставленный текст, обычно
содержащий settings, synonyms и rules) и, при необходимости, записи в
формате .json, .ndjson или .jsonl с objectID.
Review
Показывает, что будет создано: таблицу схемы (имя, тип, фасет, сортировка),
предлагаемые query_by и default_sorting_field, до 30 предупреждений,
список заметок «After import» и чекбоксы для создания или повторного
использования коллекции, импорта синонимов, импорта правил как курирования,
импорта записей и — деструктивного — замены существующей коллекции. Каждый
чекбокс неактивен, если его источник пуст, а таблица схемы показывает не
более 40 строк («Showing 40 of N»).
Apply
Выполняет шаги и сообщает об успехе или ошибке по каждому: коллекция, синонимы, правила как курирование, записи.
Done
Содержит ссылки на коллекцию, Synonyms, Curation и поисковую площадку и предлагает Migrate another index.
Мастер честно сообщает о том, что нельзя преобразовать. Вложенные или
многопутевые searchableAttributes пропускаются; синониму нужно не менее двух
терминов (многосторонний) или пара input/synonyms (односторонний);
altCorrection становится односторонним синонимом; синонимы типа placeholder и
неизвестных типов пропускаются; отключённые правила пропускаются; сопоставляется
только первое условие правила; optionalFilters не сопоставляются; редирект
сохраняется только как метаданные курирования; несопоставимые правила
пропускаются.