pub trait IndexBackend: Send + Sync {
// Required methods
fn build(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>;
fn insert(&mut self, id: VectorId, vector: Vector) -> Result<()>;
fn search(&self, query: &Vector, k: usize) -> Result<Vec<(VectorId, f32)>>;
fn delete(&mut self, id: &VectorId) -> Result<()>;
fn save(&self, path: &Path) -> Result<()>;
fn load_from(
path: &Path,
config: &CollectionConfig,
) -> Result<Box<dyn IndexBackend>>
where Self: Sized;
fn len(&self) -> usize;
fn index_type(&self) -> IndexType;
// Provided methods
fn is_empty(&self) -> bool { ... }
fn rebuild(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()> { ... }
}Required Methods§
fn build(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>
fn insert(&mut self, id: VectorId, vector: Vector) -> Result<()>
fn search(&self, query: &Vector, k: usize) -> Result<Vec<(VectorId, f32)>>
fn delete(&mut self, id: &VectorId) -> Result<()>
fn save(&self, path: &Path) -> Result<()>
fn load_from(
path: &Path,
config: &CollectionConfig,
) -> Result<Box<dyn IndexBackend>>where
Self: Sized,
fn len(&self) -> usize
fn index_type(&self) -> IndexType
Provided Methods§
fn is_empty(&self) -> bool
fn rebuild(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".