Skip to main content

Upsert Documents

Insert or update documents with your pre-computed vectors and JSON payload. Up to 1,000 documents per request.
Vector dimensions are validated against namespace config. If a document with the same ID exists, it is overwritten.

Bulk Import

For large datasets, stream NDJSON directly to shard WALs. Returns 202 Accepted with a batch ID to poll.
products.ndjson
Querying is unified through retrievers — Mixpeek has one query path, so there is no direct POST /v1/namespaces/{ns}/documents/search REST endpoint. The client.search(...) helper below is SDK sugar that authors and runs a retriever for you. From raw HTTP/curl, create a one-stage feature_search retriever and execute it — the verified BYO example immediately below does exactly that in three calls.

Query BYO vectors from raw HTTP (verified)

Bring your own vectors and query them with a raw query vector — no extractor, no re-processing. The query is an object ({"input_mode": "vector", "value": "{{INPUT.qv}}"}), and the retriever’s input_schema declares the input variable your execute call fills in.
cURL
The execute cache is invalidated by upserts — a query re-run after an upsert returns fresh results (cache_hit: false), so the write-then-verify loop is safe.

Dense (Vector) — SDK

BM25 (Keyword)

Requires a text index on the target field.

Sparse

Hybrid

Combine multiple query types with RRF or DBSF fusion.

Filtered

Add payload filters to any query type. Filters narrow results before scoring.

Document Operations

Update Vectors

Payload is untouched when updating vectors.