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

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

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

1pub fn build<T>(res: &Resources, params: &IndexParams, dataset: &T) -> Result<Index>
2where
3T: 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

1pub fn search<Q, N, D>(
2&self,
3res: &Resources,
4params: &SearchParams,
5queries: &Q,
6neighbors: &mut N,
7distances: &mut D,
8) -> Result<()>
9where
10Q: AsDlTensor + ?Sized,
11N: AsDlTensorMut + ?Sized,
12D: 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