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 search_ef(
&self,
query: &[f32],
k: usize,
_ef_search: Option<usize>,
) -> Result<Vec<SearchResult>> { ... }
fn is_empty(&self) -> bool { ... }
}Expand description
Trait for vector index implementations
Required Methods§
Provided Methods§
Sourcefn add_batch(&mut self, entries: Vec<(VectorId, Vec<f32>)>) -> Result<()>
fn add_batch(&mut self, entries: Vec<(VectorId, Vec<f32>)>) -> Result<()>
Add multiple vectors in batch
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".