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();