Documentation
Everything you need to go from signup to your first hybrid query.
Quickstart
Sign up at /signup to provision an organization, project and API key automatically.
# 1. Install the CLI (Rust toolchain required — pre-built binaries coming)
cargo install --git https://github.com/astersearch/astersearch aster-cli
# 2. Configure (writes ./aster.toml)
aster init --api-key ask_live_xxxxxxxxxxxx
# 3. Push documents
aster push products products.jsonl
# 4. Search
aster q products "wireless noise cancelling headphones"
CLI reference
The CLI reads configuration from ./aster.toml, then environment variables (ASTER_API_URL, ASTER_API_KEY), then CLI flags. Flags win.
Commands
aster init [--api-key <k>] [--api-url <u>]— write project config.aster indexes— list indexes.aster push <index> <file> [--batch 500]— ingest a JSON array or NDJSON file.aster q <index> <query> [--limit 10]— run a hybrid search.
REST API
The full OpenAPI 3.0 spec is served by the control plane at GET /openapi.yaml. Common endpoints:
POST /v1/indexes # create index
POST /v1/indexes/:index/ingest/bulk # bulk-ingest documents
POST /v1/indexes/:index/search # hybrid / lexical / vector search
GET /v1/indexes/:index/stats # doc counts + size
POST /v1/api-keys # create scoped key
Hybrid search
Every index is built with both a Tantivy inverted index and a USearch HNSW vector index. Queries can be routed to one or both:
POST /v1/indexes/products/search
{
"query": "wireless headphones",
"mode": "hybrid", // "lexical" | "vector" | "hybrid"
"limit": 10
}
In hybrid mode results are fused with Reciprocal Rank Fusion (k=60 by default).
Authentication
API keys are prefixed with environment: ask_live_… (production) or ask_test_… (testing). Pass them as Authorization: Bearer <key>. Keys can be scoped to specific tenants and to read-only or read-write privileges in the console.
Self-hosting
The whole stack ships as a docker-compose.yml at the repo root: control-api, search-node, ingest-node, embedding-worker, Postgres and Redis. docker compose up gets you a working cluster on a single host. See the repo for production deployment notes.