Neighbors Ivf Pq Index Module

View as Markdown

Rust module: cuvs::neighbors::ivf_pq::index

Source: rust/cuvs/src/neighbors/ivf_pq/index.rs

Index

#[derive(Debug)]
pub struct Index(ffi::cuvsIvfPqIndex_t); {
/* private fields */
}

IVF-PQ ANN index.

Methods

NameSource
buildrust/cuvs/src/neighbors/ivf_pq/index.rs:25
searchrust/cuvs/src/neighbors/ivf_pq/index.rs:56

build

pub fn build<T>(res: &Resources, params: &IndexParams, dataset: &T) -> Result<Index>
where
T: AsDlTensor + ?Sized,

Builds an IVF-PQ index over dataset for compressed, efficient search.

dataset is a row-major matrix on the host or device implementing [AsDlTensor]. It is copied into the index, so the caller may free it once this call returns (hence Index carries no lifetime).

Source: rust/cuvs/src/neighbors/ivf_pq/index.rs:25

pub fn search<Q, N, D>(
&self,
res: &Resources,
params: &SearchParams,
queries: &Q,
neighbors: &mut N,
distances: &mut D,
) -> Result<()>
where
Q: AsDlTensor + ?Sized,
N: AsDlTensorMut + ?Sized,
D: AsDlTensorMut + ?Sized,

Searches the index for the k nearest neighbors of each query.

queries, neighbors, and distances must reside in device memory and implement [AsDlTensor] / [AsDlTensorMut]. neighbors receives the neighbor indices and distances their distances; both are written in place.

Source: rust/cuvs/src/neighbors/ivf_pq/index.rs:56

Source: rust/cuvs/src/neighbors/ivf_pq/index.rs:17