AACSearch
SDK

CLI

aacsearch-cli — инкрементальная синхронизация локальных файлов и поиск через AACSearch API.

AACSearch CLI

aacsearch-cli работает на вашей машине и обращается только к HTTP API AACSearch через сгенерированный TypeScript SDK. Локальный поисковый движок не запускается.

Индексация устроена как инкрементальный пайплайн (как в CocoIndex): target = transform(source). Файл — единица обработки со стабильным id; неизменённые файлы пропускаются, когда совпадают и content-hash, и transform fingerprint; удалённые файлы удаляют документы в индексе.

Установка

pnpm --filter @repo/sdk build
pnpm --filter aacsearch-cli build   # также: pnpm --filter aacsearch-cli test
node integrations/aacsearch-cli/dist/cli.js --help

Опционально для PDF: предпочтительно Docling (pip install docling); запасной вариант pnpm add pdf-parse --filter aacsearch-cli. OCR в Docling по умолчанию выключен.
Опционально для семантических чанков кода: web-tree-sitter + WASM-грамматики (JS/TS/Python/Go/Rust/Java/JSON/Bash); остальные языки — size/overlap fallback.

Локальный стек (:3000): integrations/aacsearch-cli/examples/README.md.

Вход

aacsearch init --base-url https://search.example.com --index documentation --pipeline
aacsearch login --api-key aac_live_…

init --pipeline создаёт aacsearch.yaml в текущем каталоге. Или задайте AAC_API_KEY и AAC_BASE_URL.

Конфиг пайплайна

Положите aacsearch.yaml или .aacsearch/pipeline.json в корень источника (или --config). См. integrations/aacsearch-cli/examples/aacsearch.yaml.

version: 1
index: documentation
sources:
  - path: .
    include: ["**/*.md", "**/*.txt", "**/*.csv", "**/*.html", "**/*.pdf"]
honorGitIgnore: true
maxFileSize: 10485760
concurrency: 4
localChunk:
  enabled: false
parser: auto # auto | docling | pdf-parse
reembed: auto # auto при векторном индексе | true | false
transforms:
  key: v1

YAML frontmatter markdown (title, tags) попадает в метаданные. .gitignore учитывается по умолчанию (--no-gitignore отключает). Симлинки и слишком большие файлы пропускаются.

Инкрементальный update

aacsearch update ./docs --index documentation
aacsearch update ./docs --dry-run --explain
aacsearch update ./docs --local-chunk    # код → tree-sitter при наличии
aacsearch update ./docs --parser auto
aacsearch update ./docs --reembed
aacsearch update ./docs --no-reembed
aacsearch update ./docs --urls urls.txt
aacsearch -q update ./docs

После записей CLI может вызвать API reembed и напечатать reembed started job_id=… — эмбеддинги считает AACSearch API, не локальная модель. С --local-chunk неизменённые #cN чанки пропускаются (per-chunk contentHash). sync-status / doctors показывает парсеры, грамматики tree-sitter и режим reembed.

Live push (файловый CDC-стиль)

aacsearch watch ./docs --interval 400
aacsearch live ./docs --interval 200
echo '{"op":"upsert","path":"a.md"}' | aacsearch live ./docs --stdin-events
# мост от внешнего CDC (только относительные пути):
# my-cdc-tail | aacsearch live ./docs --stdin-events

При add/change — upsert файла; при unlink — удаление целевых документов. Всплески событий сливаются (debounce), один retry при ошибке upsert. CDC БД/Kafka — это коннекторы AACSearch в консоли / API; CLI live — только файловая система (и опциональный stdin NDJSON, см. examples/stdin-events.ndjson).

Поиск и операции с индексом

aacsearch search "pricing" --index documentation
aacsearch suggest "pri" --index documentation
aacsearch multi-search "pricing" --indexes documentation,help
aacsearch indexes
aacsearch create-index --name "Docs" --slug documentation
aacsearch delete <external_id> --index documentation
aacsearch reembed --index documentation

Scopes: запись документов — documents:write; search/suggest — search:read; create-index — org-wide indexes:write.

Вне области CLI

Kafka/DB CDC (коннекторы AACSearch), локальные embedding-модели, CocoIndex Python DSL, lineage UI.

См. также TypeScript SDK.

On this page