pub trait OnlineUpdatable: Send + Sync {
// Required methods
fn online_insert(
&self,
id: VectorId,
vector: Vec<f32>,
) -> Result<(), String>;
fn online_insert_batch(
&self,
vectors: Vec<(VectorId, Vec<f32>)>,
) -> Result<usize, String>;
fn online_delete(&self, id: &VectorId) -> Result<bool, String>;
fn online_delete_batch(&self, ids: &[VectorId]) -> Result<usize, String>;
fn contains(&self, id: &VectorId) -> bool;
fn len(&self) -> usize;
fn maintenance(&self) -> Result<MaintenanceResult, String>;
fn online_stats(&self) -> OnlineUpdateStats;
// Provided methods
fn online_update(
&self,
id: VectorId,
vector: Vec<f32>,
) -> Result<(), String> { ... }
fn online_update_batch(
&self,
vectors: Vec<(VectorId, Vec<f32>)>,
) -> Result<usize, String> { ... }
fn is_empty(&self) -> bool { ... }
}Expand description
Trait for indexes that support online updates
Required Methods§
Sourcefn online_insert(&self, id: VectorId, vector: Vec<f32>) -> Result<(), String>
fn online_insert(&self, id: VectorId, vector: Vec<f32>) -> Result<(), String>
Insert a single vector
Sourcefn online_insert_batch(
&self,
vectors: Vec<(VectorId, Vec<f32>)>,
) -> Result<usize, String>
fn online_insert_batch( &self, vectors: Vec<(VectorId, Vec<f32>)>, ) -> Result<usize, String>
Insert multiple vectors in a batch
Sourcefn online_delete(&self, id: &VectorId) -> Result<bool, String>
fn online_delete(&self, id: &VectorId) -> Result<bool, String>
Delete a vector by ID (may be lazy)
Sourcefn online_delete_batch(&self, ids: &[VectorId]) -> Result<usize, String>
fn online_delete_batch(&self, ids: &[VectorId]) -> Result<usize, String>
Delete multiple vectors by ID
Sourcefn maintenance(&self) -> Result<MaintenanceResult, String>
fn maintenance(&self) -> Result<MaintenanceResult, String>
Perform maintenance operations (cleanup deleted vectors, optimize structure)
Sourcefn online_stats(&self) -> OnlineUpdateStats
fn online_stats(&self) -> OnlineUpdateStats
Get online update statistics
Provided Methods§
Sourcefn online_update(&self, id: VectorId, vector: Vec<f32>) -> Result<(), String>
fn online_update(&self, id: VectorId, vector: Vec<f32>) -> Result<(), String>
Update a vector (atomic delete + insert)