Skip to main content

KeyValueIVFIndex

Struct KeyValueIVFIndex 

Source
pub struct KeyValueIVFIndex { /* private fields */ }

Implementations§

Source§

impl KeyValueIVFIndex

Source

pub fn create( store: Arc<dyn KeyValueStore>, table: impl Into<String>, field: impl Into<String>, dimensions: u32, params: IVFIndexParams, ) -> StorageBackendResult<Self>

Source

pub fn restore( store: Arc<dyn KeyValueStore>, table: impl Into<String>, field: impl Into<String>, dimensions: u32, params: IVFIndexParams, ) -> StorageBackendResult<Self>

Trait Implementations§

Source§

impl VectorIndex for KeyValueIVFIndex

Source§

fn contains_document(&self, doc_id: DocId) -> StorageBackendResult<bool>

Test canonical membership at this handle’s visibility boundary without searching or materializing the corpus. Empty tensor replacements have no membership. This is a maintenance probe, not a logical query observation.
Source§

fn dimensions(&self) -> u32

Source§

fn index_kind(&self) -> &'static str

Source§

fn add(&mut self, doc_id: DocId, vector: Vec<f32>) -> StorageBackendResult<()>

Source§

fn add_many( &mut self, doc_id: DocId, vectors: Vec<Vec<f32>>, ) -> StorageBackendResult<()>

Source§

fn delete(&mut self, doc_id: DocId) -> StorageBackendResult<()>

Source§

fn clear(&mut self) -> StorageBackendResult<()>

Source§

fn search_knn( &self, query: &[f32], k: usize, ) -> StorageBackendResult<PostingList>

Source§

fn search_threshold( &self, query: &[f32], threshold: f32, ) -> StorageBackendResult<PostingList>

Source§

fn count(&self) -> StorageBackendResult<usize>

Source§

fn initialize(&mut self) -> StorageBackendResult<()>

Build any auxiliary physical metadata required by this index from its current vector contents. Brute-force indexes need no extra work; persistent IVF and HNSW implementations use this during explicit index creation, while restore paths deliberately skip it.
Source§

fn snapshot(&self) -> StorageBackendResult<Arc<dyn VectorIndex>>

Read-only handle suitable for an ExecutionContext.
Source§

fn search_knn_with_control( &self, query: &[f32], k: usize, control: &StorageReadControl, ) -> StorageBackendResult<PostingList>

Request a controlled search. The default checks cancellation and delegates to the provider’s existing read boundary; in-memory physical algorithms override it to charge query workspace to the supplied allowance.
Source§

fn search_threshold_with_control( &self, query: &[f32], threshold: f32, control: &StorageReadControl, ) -> StorageBackendResult<PostingList>

Controlled threshold search keeps the same result and caller-owned posting boundary as ordinary search.
Source§

fn snapshot_with_control( &self, control: &StorageReadControl, ) -> StorageBackendResult<Arc<dyn VectorIndex>>

Capture using the caller’s retention allowance and cancellation. Owners that copy index data override this method to reserve construction before allocation. The default preserves the provider’s existing snapshot and its independently retained control.
Source§

fn writable_snapshot(&self) -> StorageBackendResult<Box<dyn VectorIndex>>

Independent writable copy used by in-memory engine rollback. The default keeps third-party and persistent implementations source compatible; only indexes hosted by a memory engine need to support it.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.