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§
Sourcefn insert_vector(&mut self, id: VectorId, vector: Vector) -> Result<()>
fn insert_vector(&mut self, id: VectorId, vector: Vector) -> Result<()>
Insert a vector with metadata
Sourcefn add_vector(&mut self, vector: Vector) -> Result<VectorId>
fn add_vector(&mut self, vector: Vector) -> Result<VectorId>
Add a vector and return its ID
Sourcefn get_all_vector_ids(&self) -> Result<Vec<VectorId>>
fn get_all_vector_ids(&self) -> Result<Vec<VectorId>>
Get all vector IDs
Sourcefn search_similar(
&self,
query: &Vector,
k: usize,
) -> Result<Vec<(VectorId, f32)>>
fn search_similar( &self, query: &Vector, k: usize, ) -> Result<Vec<(VectorId, f32)>>
Search for similar vectors
Sourcefn remove_vector(&mut self, id: &VectorId) -> Result<bool>
fn remove_vector(&mut self, id: &VectorId) -> Result<bool>
Remove a vector by ID