VectorIndex

Trait VectorIndex 

Source
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§

Source

fn insert(&mut self, uri: String, vector: Vector) -> Result<()>

Insert a vector with associated URI

Source

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

Find k nearest neighbors

Source

fn search_threshold( &self, query: &Vector, threshold: f32, ) -> Result<Vec<(String, f32)>>

Find all vectors within threshold similarity

Source

fn get_vector(&self, uri: &str) -> Option<&Vector>

Get a vector by its URI

Provided Methods§

Source

fn add_vector( &mut self, id: VectorId, vector: Vector, _metadata: Option<HashMap<String, String>>, ) -> Result<()>

Add a vector with associated ID and metadata

Source

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

Update an existing vector

Source

fn update_metadata( &mut self, _id: VectorId, _metadata: HashMap<String, String>, ) -> Result<()>

Update metadata for a vector

Source

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

Remove a vector by its ID

Implementors§