pub trait VectorIndex: Send + Sync {
// Required methods
fn insert(&mut self, uri: String, vector: Vector) -> Result<()>;
fn search_knn(&self, query: &Vector, k: usize) -> Result<Vec<(String, f32)>>;
fn search_threshold(
&self,
query: &Vector,
threshold: f32,
) -> Result<Vec<(String, f32)>>;
fn get_vector(&self, uri: &str) -> Option<&Vector>;
// Provided methods
fn add_vector(
&mut self,
id: VectorId,
vector: Vector,
_metadata: Option<HashMap<String, String>>,
) -> Result<()> { ... }
fn update_vector(&mut self, id: VectorId, vector: Vector) -> Result<()> { ... }
fn update_metadata(
&mut self,
_id: VectorId,
_metadata: HashMap<String, String>,
) -> Result<()> { ... }
fn remove_vector(&mut self, _id: VectorId) -> Result<()> { ... }
}Expand description
Vector index trait for efficient similarity search
Required Methods§
Sourcefn insert(&mut self, uri: String, vector: Vector) -> Result<()>
fn insert(&mut self, uri: String, vector: Vector) -> Result<()>
Insert a vector with associated URI
Sourcefn search_knn(&self, query: &Vector, k: usize) -> Result<Vec<(String, f32)>>
fn search_knn(&self, query: &Vector, k: usize) -> Result<Vec<(String, f32)>>
Find k nearest neighbors
Sourcefn search_threshold(
&self,
query: &Vector,
threshold: f32,
) -> Result<Vec<(String, f32)>>
fn search_threshold( &self, query: &Vector, threshold: f32, ) -> Result<Vec<(String, f32)>>
Find all vectors within threshold similarity
Sourcefn get_vector(&self, uri: &str) -> Option<&Vector>
fn get_vector(&self, uri: &str) -> Option<&Vector>
Get a vector by its URI
Provided Methods§
Sourcefn add_vector(
&mut self,
id: VectorId,
vector: Vector,
_metadata: Option<HashMap<String, String>>,
) -> Result<()>
fn add_vector( &mut self, id: VectorId, vector: Vector, _metadata: Option<HashMap<String, String>>, ) -> Result<()>
Add a vector with associated ID and metadata
Sourcefn update_vector(&mut self, id: VectorId, vector: Vector) -> Result<()>
fn update_vector(&mut self, id: VectorId, vector: Vector) -> Result<()>
Update an existing vector
Sourcefn update_metadata(
&mut self,
_id: VectorId,
_metadata: HashMap<String, String>,
) -> Result<()>
fn update_metadata( &mut self, _id: VectorId, _metadata: HashMap<String, String>, ) -> Result<()>
Update metadata for a vector
Sourcefn remove_vector(&mut self, _id: VectorId) -> Result<()>
fn remove_vector(&mut self, _id: VectorId) -> Result<()>
Remove a vector by its ID