Skip to content

API reference

Vector API

Embedding and similarity search

Declare vector properties in your schema, and use a standalone vector index for similarity search.

Defining vector properties

The dimension argument documents the property; it is not validated.

TypeScript
import { vector } from '@kitedb/core';// Define with dimensionsembedding: vector('embedding', 1536)

Similarity search methods

TypeScript
import { createVectorIndex } from '@kitedb/core';const index = createVectorIndex({ dimensions: 1536 });// Add vectors: a Float32Array is read in place, a number[] is convertedindex.set(nodeId, embedding);// Search: returns Array<{ nodeId, distance, similarity }>const hits = index.search(queryVector, {  k: 10,          // Max results  threshold: 0.8, // Min similarity score (cosine)  nProbe: 10,     // IVF probe count (optional)  rerankFactor: 4, // IVF-PQ: re-rank the best max(k * 4, 80) candidates                   // by exact distance (optional; 0 = PQ ranking only)});

Vector indexing

TypeScript
import { AnnAlgorithm, createVectorIndex } from '@kitedb/core';const index = createVectorIndex({  dimensions: 1536,  // ivf.seed (optional) makes builds reproducible: the same vectors give  // the same index on any machine  ivf: { seed: 42 },  // AnnAlgorithm.Auto (default): plain IVF below 50,000 vectors or 512  // dimensions, IVF-PQ from there on; or force AnnAlgorithm.Ivf / IvfPq  annAlgorithm: AnnAlgorithm.Auto,});// Build or rebuild the ANN index for faster searchindex.buildIndex();index.stats().indexAlgorithm; // 'ivf' or 'ivf_pq'// Or build on the libuv thread pool without blocking the event loopawait index.buildIndexAsync();