Struct faiss::index::id_map::IdMap

source ·
pub struct IdMap<I> { /* private fields */ }
Expand description

Wrapper for implementing arbitrary ID mapping to an index.

See the module level documentation for more information.

Implementations§

source§

impl<I> IdMap<I>where I: NativeIndex,

source

pub fn new(index: I) -> Result<Self>

Augment an index with arbitrary ID mapping.

source

pub fn id_map(&self) -> &[Idx]

Retrieve a slice of the internal ID map.

source

pub fn index_inner_ptr(&self) -> *mut FaissIndex

Obtain the raw pointer to the internal index.

Safety

While this method is safe, note that the returned index pointer is already owned by this ID map. Therefore, it is undefined behavior to create a high-level index value from this pointer without first decoupling this ownership. See [into_inner] for a safe alternative.

source

pub fn into_inner(self) -> Iwhere I: FromInnerPtr,

Discard the ID map, recovering the index originally created without it.

source

pub fn try_into_inner(self) -> Result<I>where I: TryFromInnerPtr,

Discard the ID map, recovering the index originally created without it. Safety build managed index from pointer.

source

pub fn try_cast_inner_index<B>(self) -> Result<IdMap<B>>where B: TryFromInnerPtr,

Specialization of the index type inside IdMap.

Trait Implementations§

source§

impl<I> ConcurrentIndex for IdMap<I>where I: ConcurrentIndex,

source§

fn assign(&self, query: &[f32], k: usize) -> Result<AssignSearchResult>

Similar to search, but only provides the labels.
source§

fn search(&self, query: &[f32], k: usize) -> Result<SearchResult>

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

fn range_search(&self, query: &[f32], radius: f32) -> Result<RangeSearchResult>

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

impl<I: Debug> Debug for IdMap<I>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<I> Drop for IdMap<I>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<I> Index for IdMap<I>

source§

fn is_trained(&self) -> bool

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

fn ntotal(&self) -> u64

The total number of vectors indexed
source§

fn d(&self) -> u32

The dimensionality of the indexed vectors
source§

fn metric_type(&self) -> MetricType

The metric type assumed by the index
source§

fn add(&mut self, x: &[f32]) -> Result<()>

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.
source§

fn add_with_ids(&mut self, x: &[f32], xids: &[Idx]) -> Result<()>

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.
source§

fn train(&mut self, x: &[f32]) -> Result<()>

Train the underlying index with the given data.
source§

fn assign(&mut self, query: &[f32], k: usize) -> Result<AssignSearchResult>

Similar to search, but only provides the labels.
source§

fn search(&mut self, query: &[f32], k: usize) -> Result<SearchResult>

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.
source§

fn reset(&mut self) -> Result<()>

Clear the entire index.
source§

fn remove_ids(&mut self, sel: &IdSelector) -> Result<usize>

Remove data vectors represented by IDs.
source§

fn verbose(&self) -> bool

Index verbosity level
source§

fn set_verbose(&mut self, value: bool)

Set Index verbosity level
source§

impl<I> NativeIndex for IdMap<I>

source§

fn inner_ptr(&self) -> *mut FaissIndex

Retrieve a pointer to the native index object.
source§

impl<I: CpuIndex> CpuIndex for IdMap<I>

source§

impl<I: Send> Send for IdMap<I>

source§

impl<I: Sync> Sync for IdMap<I>

Auto Trait Implementations§

§

impl<I> RefUnwindSafe for IdMap<I>where I: RefUnwindSafe,

§

impl<I> Unpin for IdMap<I>where I: Unpin,

§

impl<I> UnwindSafe for IdMap<I>where I: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.
source§

impl<NI> UpcastIndex for NIwhere NI: NativeIndex,

source§

fn upcast(self) -> IndexImpl

Convert an index to the base IndexImpl type