Skip to main content

Quickstart

A minimal example that inserts vectors and searches by cosine similarity.

use vcal_core::{Index, Metric, InsertItem};

fn main() -> anyhow::Result<()> {
// 1) Create index
let dims = 768;
let mut idx = Index::new(dims, Metric::Cosine)?;

// 2) Insert a few vectors (id + embedding)
idx.insert(InsertItem::new("faq:001", vec![0.1; dims]))?;
idx.insert(InsertItem::new("faq:002", vec![0.2; dims]))?;
idx.insert(InsertItem::new("faq:003", vec![0.3; dims]))?;

// 3) Search
let query = vec![0.12; dims];
let k = 2;
let results = idx.search(&query, k)?;

for hit in results {
println!("id={} score={:.4}", hit.id, hit.score);
}

Ok(())
}