pub trait VectorDatabase {
// Required methods
fn create_vector(
&mut self,
id: String,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>;
fn get_vector(&self, id: &str) -> Result<VectorDocument, VectraDBError>;
fn update_vector(
&mut self,
id: &str,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>;
fn delete_vector(&mut self, id: &str) -> Result<(), VectraDBError>;
fn upsert_vector(
&mut self,
id: String,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>;
fn search_similar(
&self,
query_vector: Array1<f32>,
top_k: usize,
) -> Result<Vec<SimilarityResult>, VectraDBError>;
fn list_vectors(&self) -> Result<Vec<String>, VectraDBError>;
fn get_stats(&self) -> Result<DatabaseStats, VectraDBError>;
}Expand description
Vector database trait for different implementations
Required Methods§
Sourcefn create_vector(
&mut self,
id: String,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>
fn create_vector( &mut self, id: String, vector: Array1<f32>, tags: Option<HashMap<String, String>>, ) -> Result<(), VectraDBError>
Create a new vector in the database
Sourcefn get_vector(&self, id: &str) -> Result<VectorDocument, VectraDBError>
fn get_vector(&self, id: &str) -> Result<VectorDocument, VectraDBError>
Fetch a vector by ID
Sourcefn update_vector(
&mut self,
id: &str,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>
fn update_vector( &mut self, id: &str, vector: Array1<f32>, tags: Option<HashMap<String, String>>, ) -> Result<(), VectraDBError>
Update an existing vector
Sourcefn delete_vector(&mut self, id: &str) -> Result<(), VectraDBError>
fn delete_vector(&mut self, id: &str) -> Result<(), VectraDBError>
Delete a vector by ID
Sourcefn upsert_vector(
&mut self,
id: String,
vector: Array1<f32>,
tags: Option<HashMap<String, String>>,
) -> Result<(), VectraDBError>
fn upsert_vector( &mut self, id: String, vector: Array1<f32>, tags: Option<HashMap<String, String>>, ) -> Result<(), VectraDBError>
Upsert (insert or update) a vector
Sourcefn search_similar(
&self,
query_vector: Array1<f32>,
top_k: usize,
) -> Result<Vec<SimilarityResult>, VectraDBError>
fn search_similar( &self, query_vector: Array1<f32>, top_k: usize, ) -> Result<Vec<SimilarityResult>, VectraDBError>
Search for similar vectors
Sourcefn list_vectors(&self) -> Result<Vec<String>, VectraDBError>
fn list_vectors(&self) -> Result<Vec<String>, VectraDBError>
Get all vector IDs
Sourcefn get_stats(&self) -> Result<DatabaseStats, VectraDBError>
fn get_stats(&self) -> Result<DatabaseStats, VectraDBError>
Get database statistics