Skip to main content

IndexBackend

Trait IndexBackend 

Source
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§

Source

fn build(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>

Source

fn insert(&mut self, id: VectorId, vector: Vector) -> Result<()>

Source

fn search(&self, query: &Vector, k: usize) -> Result<Vec<(VectorId, f32)>>

Source

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

Source

fn save(&self, path: &Path) -> Result<()>

Source

fn load_from( path: &Path, config: &CollectionConfig, ) -> Result<Box<dyn IndexBackend>>
where Self: Sized,

Source

fn len(&self) -> usize

Source

fn index_type(&self) -> IndexType

Provided Methods§

Source

fn is_empty(&self) -> bool

Source

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".

Implementors§