VectorStoreTrait

Trait VectorStoreTrait 

Source
pub trait VectorStoreTrait: Send + Sync {
    // Required methods
    fn insert_vector(&mut self, id: VectorId, vector: Vector) -> Result<()>;
    fn add_vector(&mut self, vector: Vector) -> Result<VectorId>;
    fn get_vector(&self, id: &VectorId) -> Result<Option<Vector>>;
    fn get_all_vector_ids(&self) -> Result<Vec<VectorId>>;
    fn search_similar(
        &self,
        query: &Vector,
        k: usize,
    ) -> Result<Vec<(VectorId, f32)>>;
    fn remove_vector(&mut self, id: &VectorId) -> Result<bool>;
    fn len(&self) -> usize;

    // Provided method
    fn is_empty(&self) -> bool { ... }
}
Expand description

Trait for vector store implementations

Required Methods§

Source

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

Insert a vector with metadata

Source

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

Add a vector and return its ID

Source

fn get_vector(&self, id: &VectorId) -> Result<Option<Vector>>

Get a vector by its ID

Source

fn get_all_vector_ids(&self) -> Result<Vec<VectorId>>

Get all vector IDs

Source

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

Search for similar vectors

Source

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

Remove a vector by ID

Source

fn len(&self) -> usize

Get the number of vectors stored

Provided Methods§

Source

fn is_empty(&self) -> bool

Check if the store is empty

Implementors§