Trait faiss::index::Index

source ·
pub trait Index {
    fn is_trained(&self) -> bool;
    fn ntotal(&self) -> u64;
    fn d(&self) -> u32;
    fn metric_type(&self) -> MetricType;
    fn add(&mut self, x: &[f32]) -> Result<()>;
    fn add_with_ids(&mut self, x: &[f32], xids: &[Idx]) -> Result<()>;
    fn train(&mut self, x: &[f32]) -> Result<()>;
    fn assign(&mut self, q: &[f32], k: usize) -> Result<AssignSearchResult>;
    fn search(&mut self, q: &[f32], k: usize) -> Result<SearchResult>;
    fn range_search(
        &mut self,
        q: &[f32],
        radius: f32
    ) -> Result<RangeSearchResult>; fn reset(&mut self) -> Result<()>; fn remove_ids(&mut self, sel: &IdSelector) -> Result<i64>; }
Expand description

Interface for a Faiss index. Most methods in this trait match the ones in the native library, whereas some others serve as getters to the index’ parameters.

Although all methods appear to be available for all index implementations, some methods may not be supported. For instance, a FlatIndex stores vectors sequentially, and so does not support add_with_ids nor remove_ids. Users are advised to read the Faiss wiki pages in order to understand which index algorithms support which operations.

Required Methods§

Whether the Index does not require training, or if training is done already

The total number of vectors indexed

The dimensionality of the indexed vectors

The metric type assumed by the index

Add new data vectors to the index. This assumes a C-contiguous memory slice of vectors, where the total number of vectors is x.len() / d.

Add new data vectors to the index with IDs. This assumes a C-contiguous memory slice of vectors, where the total number of vectors is x.len() / d. Not all index types may support this operation.

Train the underlying index with the given data.

Similar to search, but only provides the labels.

Perform a search for the k closest vectors to the given query vectors.

Perform a ranged search for the vectors closest to the given query vectors by the given radius.

Clear the entire index.

Remove data vectors represented by IDs.

Implementors§