Skip to main content

VectorIndex

Trait VectorIndex 

Source
pub trait VectorIndex: Send + Sync {
    // Required methods
    fn dimensions(&self) -> u32;
    fn add(
        &mut self,
        doc_id: DocId,
        vector: Vec<f32>,
    ) -> StorageBackendResult<()>;
    fn add_many(
        &mut self,
        doc_id: DocId,
        vectors: Vec<Vec<f32>>,
    ) -> StorageBackendResult<()>;
    fn delete(&mut self, doc_id: DocId) -> StorageBackendResult<()>;
    fn clear(&mut self) -> StorageBackendResult<()>;
    fn search_knn(
        &self,
        query: &[f32],
        k: usize,
    ) -> StorageBackendResult<PostingList>;
    fn search_threshold(
        &self,
        query: &[f32],
        threshold: f32,
    ) -> StorageBackendResult<PostingList>;
    fn count(&self) -> StorageBackendResult<usize>;
    fn snapshot(&self) -> StorageBackendResult<Arc<dyn VectorIndex>>;

    // Provided methods
    fn index_kind(&self) -> &'static str { ... }
    fn initialize(&mut self) -> StorageBackendResult<()> { ... }
    fn writable_snapshot(&self) -> StorageBackendResult<Box<dyn VectorIndex>> { ... }
}

Required Methods§

Source

fn dimensions(&self) -> u32

Source

fn add(&mut self, doc_id: DocId, vector: Vec<f32>) -> StorageBackendResult<()>

Source

fn add_many( &mut self, doc_id: DocId, vectors: Vec<Vec<f32>>, ) -> StorageBackendResult<()>

Source

fn delete(&mut self, doc_id: DocId) -> StorageBackendResult<()>

Source

fn clear(&mut self) -> StorageBackendResult<()>

Source

fn search_knn( &self, query: &[f32], k: usize, ) -> StorageBackendResult<PostingList>

Source

fn search_threshold( &self, query: &[f32], threshold: f32, ) -> StorageBackendResult<PostingList>

Source

fn count(&self) -> StorageBackendResult<usize>

Source

fn snapshot(&self) -> StorageBackendResult<Arc<dyn VectorIndex>>

Read-only handle suitable for an ExecutionContext.

Provided Methods§

Source

fn index_kind(&self) -> &'static str

Source

fn initialize(&mut self) -> StorageBackendResult<()>

Build any auxiliary physical metadata required by this index from its current vector contents. Brute-force indexes need no extra work; persistent IVF and HNSW implementations use this during explicit index creation, while restore paths deliberately skip it.

Source

fn writable_snapshot(&self) -> StorageBackendResult<Box<dyn VectorIndex>>

Independent writable copy used by in-memory engine rollback. The default keeps third-party and persistent implementations source compatible; only indexes hosted by a memory engine need to support it.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§