pub trait VectorBackend: Send + Sync {
// Required methods
fn insert(
&mut self,
id: &str,
embedding: &[f32],
) -> Result<(), CodememError>;
fn insert_batch(
&mut self,
items: &[(String, Vec<f32>)],
) -> Result<(), CodememError>;
fn search(
&self,
query: &[f32],
k: usize,
) -> Result<Vec<(String, f32)>, CodememError>;
fn remove(&mut self, id: &str) -> Result<bool, CodememError>;
fn save(&self, path: &Path) -> Result<(), CodememError>;
fn load(&mut self, path: &Path) -> Result<(), CodememError>;
fn stats(&self) -> VectorStats;
}Expand description
Vector backend trait for HNSW index operations.
Required Methods§
Sourcefn insert(&mut self, id: &str, embedding: &[f32]) -> Result<(), CodememError>
fn insert(&mut self, id: &str, embedding: &[f32]) -> Result<(), CodememError>
Insert a vector with associated ID.
Sourcefn insert_batch(
&mut self,
items: &[(String, Vec<f32>)],
) -> Result<(), CodememError>
fn insert_batch( &mut self, items: &[(String, Vec<f32>)], ) -> Result<(), CodememError>
Batch insert vectors.
Sourcefn search(
&self,
query: &[f32],
k: usize,
) -> Result<Vec<(String, f32)>, CodememError>
fn search( &self, query: &[f32], k: usize, ) -> Result<Vec<(String, f32)>, CodememError>
Search for k nearest neighbors. Returns (id, distance) pairs.
Sourcefn stats(&self) -> VectorStats
fn stats(&self) -> VectorStats
Get index statistics.