AACSearch
Справочник API

Задачи

Долгие операции отвечают 202 с id задачи. Прогресс — GET /jobs/{jobId}, отмена до переключения алиаса — DELETE.

Перестройка индекса, краул DocSearch, импорт файлов, создание и восстановление снимка никогда не выполняются внутри HTTP-запроса: эндпоинт ставит задачу в очередь и отвечает 202 Accepted, воркер планировщика берёт её под lease. Если процесс упал, lease истекает и задача подхватывается снова.

ТипЗапускаетScope для чтения / отмены
reindexPOST /indexes/{slug}/reindexsettings:write
crawlPOST /indexes/{slug}/docsearch/previewdocuments:write
file_importзапуск файлового коннектораsettings:write
snapshotPOST /indexes/{slug}/snapshotssettings:write
restorePOST /indexes/{slug}/snapshots/{id}/restoresettings:write
evalPOST /quality/sets/{setId}/runsettings:write
reembedPOST /indexes/{slug}/reembed?all=truesettings:write (запуск — с documents:write)
{
	"index": "products",
	"job_id": "clx8f2k9q0001",
	"status": "queued",
	"status_url": "/api/v1/jobs/clx8f2k9q0001",
	"request_id": "req_…"
}

GET /jobs/{jobId}

Ответ { job, request_id }, где job: id, type, status (queued · running · completed · partial · failed · cancelled), phase (reindex: queued → loading → copying → swapping → done; crawl: crawling → done), progress 0–100, attempts, index, documents_processed, error, result, created_at, started_at, finished_at.

Типresult
reindex{ documents, duration_ms, source, snapshot_kept }
crawl{ pages, skipped, errors[], total, records[] } — первые 25 записей, в индекс ничего не пишется
file_import{ loaded, indexed, failed, skipped, ocr_pages, files[] }
snapshot{ snapshot_id, documents, bytes }
restore{ snapshot_id, documents, duration_ms, snapshot_kept }
reembed{ documents, failed, restored, embed_model, embed_model_version, duration_ms }
evalнет — метрики читайте из GET /quality/runs/{runId}

DELETE /jobs/{jobId}

Отменяет задачу в статусе queued или running, ещё не дошедшую до swapping. Иначе — 409 JOB_NOT_CANCELLABLE с details.status и details.phase. Отмена пишется в аудит.

Что делает отмена, зависит от типа задачи:

ТипПосле отмены
reindex, restoreВоркер останавливается между страницами и удаляет недостроенную коллекцию; живой индекс не затрагивается
snapshotНичего не публикуется; частично записанные объекты удаляются
file_import, reembedОстанавливается между файлами / пачками; уже записанное остаётся
crawlКраул доходит до конца в фоне, но его результат отбрасывается
evalПрогон закрывается со статусом failed

Изоляция и конфликты

  • Чужая задача (другой тенант или, для ключа с привязкой к индексу, другой индекс) — 404 JOB_NOT_FOUND, никогда не 403.
  • Запуск reindex или restore, пока reindex или restore в очереди или выполняется, — 409 JOB_CONFLICT с активным details.job_id. Это относится и к ?sync=true. Задача reembed на индекс тоже выполняется только одна.
  • POST /reindex?sync=true — старый блокирующий вызов (200 { index, job_id, documents, duration_ms }), только для тестов. POST /quality/sets/{setId}/run?sync=true так же сохраняет старую блокирующую оценку.

On this page