Vector
K3’s vector primitive is a per-bucket vector engine backed by VBase (managed Milvus). Use it to make objects searchable by what they mean — not just what they’re called.
The engine exposes hybrid retrieval (dense embeddings + sparse BM25 fused via RRF), cross-encoder reranking, and multi-collection search in a single bucket-scoped API. VBase sits underneath — for advanced Milvus features K3 doesn’t surface (custom indexes, partition lifecycle, raw client SDKs), point your engine at your own VBase cluster via the external mode or use VBase’s API directly.
What you can do
- Two ways to manage a collection: bind to a Scriptum embedding template (K3 chunks + embeds for you) or push pre-embedded vectors directly with your own dimensions / metric / sparse mode.
- One search RPC, three query shapes: text (server embeds it), pre-embedded vector (fast lane), or file-by-S3-key (multimodal — image / audio / video).
- Hybrid retrieval: dense + sparse BM25 fused via RRF (k=60), with optional Jina reranking on the top-K.
- Multi-collection search by leaving
collection_nameempty — K3 fans the query out across compatible collections (same dimensions + embedding type) and returns merged results with per-collection statuses. - Five dense element types (float / binary / float16 / bfloat16 / int8) — pick the right precision-vs-speed for your model.
- Direct vector writes (
InsertVectors/UpsertVectors/DeleteVectors) on EXTERNAL-mode collections — no ingest pipeline needed.
Two collection-creation modes
| Mode | RPC | Who owns the schema | When to pick |
|---|---|---|---|
| Pipeline | AddVectorPipeline | Scriptum template (*_embedding_index) | You’re ingesting unstructured content (PDFs, images, audio) — K3 chunks, embeds, and indexes for you |
| Manual / external | AddVectorCollection | You — declare dimensions, metric, sparse mode, embed_model | You have your own embedding pipeline (third-party models, pre-computed batches) and want to push vectors directly |
Engine modes (VBase integration)
The vector Engine has three provisioning modes:
| Mode | What it does | When to pick |
|---|---|---|
auto | K3 provisions a VBase database for you on a managed cluster | Default — zero setup, K3 handles everything |
external | Point the bucket’s engine at your own VBase cluster | You operate VBase yourself or need direct raw-Milvus access |
pick | Use an existing VBase service-ID in your org | Shared VBase service across multiple K3 buckets |
For raw Milvus features K3 doesn’t expose (partition lifecycle, alter collection, custom index types), use VBase’s API directly against the same endpoint — K3 doesn’t lock writes.
In this section
- Quickstart — configure engine + first collection + first search, 5 minutes
- Core Concepts — proto-grounded types: Engine, Collection, VectorRecord, Search shapes/modes/filters, Template
- API Reference — five RPC groups (Engine · Collections · Search · Vectors · Templates) with VBase touchpoints
- CLI Guide —
dodil k3 vector store·vector collection·search·vector templates - Recipes — pipeline collection (RAG), external collection (BYO embeddings), multi-collection search, hybrid + rerank, multimodal search
See also
- VBase — the underlying managed-Milvus product (escape hatch for raw access)
- Pipelines — what feeds pipeline-mode collections (Scriptum
*_embedding_indextemplates) - Object Storage — where the bucket lives + where S3-key file queries point
- Conventions — auth, headers, error envelope
- CLI Basics — install + common flags