Skip to Content
We are live but in Staging 🎉
Data EnginesVectorOverview

Vector

The Vector data engine is DataK³’s vector data plane: a vector collection is a table with a vector<n> column on the tables-gateway, written and read with the protocol your client already speaks. There is no separate vector service and no engine to provision — a vector<n> column is just another column type on the tabled plane.

Speak SQL, Postgres, Qdrant or Pinecone to it. KNN is ORDER BY "col" <=> '[…]' LIMIT k over the pg wire (pg.uk-lon-1.dodil.io:5432, sslmode=require), or a stock Qdrant / Pinecone client at qdrant.uk-lon-1.dodil.io / pinecone.uk-lon-1.dodil.io — the api-key header carries the db id (the bucket name), not a credential. See Connect & wire adapters.

What lives here

  • The SQL data model — the vector<n> / halfvec<n> / bit<n> types, distance metrics and their operator / opclass mapping, and the HNSW / IVFFlat ANN index. See Core Concepts.
  • KNN over the wire — pgvector operators in SQL (<-> L2, <#> inner product, <=> cosine), the Qdrant / Pinecone adapters, or dodil data vsearch over the typed TablesVector.QueryVectors facet.
  • The managed search routePOST /:bucket/search/vector, the control-plane dispatcher that embeds a text/file query server-side and searches pipeline-created collections. See API Reference → Search.

What does NOT live here — auto-embed-on-ingest

Creating a collection that chunks + embeds + indexes uploaded objects for you is a control-plane / ingest concern, not a data-engine one. That whole surface — CreateVectorPipeline, VectorConfig, dodil data vector collection add, the *_embedding_index templates, and the ingest rules that feed them — lives in Pipelines:

A pipeline-created collection is still a vector<n> table underneath — once it exists, you query it with the same SQL/KNN paths documented here.

Two ways vectors arrive in a table

Where vectors come fromHow you set it upRead them with
You write them (BYO embeddings)CREATE TABLE … (id VARCHAR PRIMARY KEY, embedding vector(N)), then upsert with a stock Qdrant / Pinecone client or SQL INSERTSQL KNN · dodil data vsearch · Qdrant / Pinecone search
A pipeline writes them (auto-embed)CreateVectorPipeline with a *_embedding_index template + an ingest rulethe managed search route · or SQL KNN on the physical k3_<uuid> table

In this section

  • Quickstart — create a vector<n> table, insert, and run SQL KNN in 5 minutes
  • Core Concepts — the SQL data model: types, metrics, operators, opclasses, the ANN index
  • API Reference — the managed search route + the tabled data path (TablesVector)
  • CLI Guidedodil data vsearch
  • Recipes — multi-collection search, hybrid + rerank, multimodal search

See also