VectorIndex

Trait VectorIndex 

Source
pub trait VectorIndex: Send + Sync {
    // Required methods
    fn add(&mut self, id: VectorId, vector: Vec<f32>) -> Result<()>;
    fn search(&self, query: &[f32], k: usize) -> Result<Vec<SearchResult>>;
    fn remove(&mut self, id: &VectorId) -> Result<bool>;
    fn len(&self) -> usize;

    // Provided methods
    fn add_batch(&mut self, entries: Vec<(VectorId, Vec<f32>)>) -> Result<()> { ... }
    fn is_empty(&self) -> bool { ... }
}
Expand description

Trait for vector index implementations

Required Methods§

Source

fn add(&mut self, id: VectorId, vector: Vec<f32>) -> Result<()>

Add a vector to the index

Source

fn search(&self, query: &[f32], k: usize) -> Result<Vec<SearchResult>>

Search for k nearest neighbors

Source

fn remove(&mut self, id: &VectorId) -> Result<bool>

Remove a vector from the index

Source

fn len(&self) -> usize

Get the number of vectors in the index

Provided Methods§

Source

fn add_batch(&mut self, entries: Vec<(VectorId, Vec<f32>)>) -> Result<()>

Add multiple vectors in batch

Source

fn is_empty(&self) -> bool

Check if the index is empty

Implementors§