> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/cuvs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/cuvs/_mcp/server.

# Neighbors Cagra Module

_Rust module: `cuvs::neighbors::cagra`_

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs`_

CAGRA: a graph-based approximate nearest neighbors algorithm with
state-of-the-art query throughput for both small and large batch sizes.

Build an [`Index`] from a dataset, then [`search`](Index::search) it with
device-resident queries and output buffers. Tensors are passed through the
`AsDlTensor` / `AsDlTensorMut` traits; see the [`dlpack`](crate::dlpack)
module for the tensor model and `examples/cagra.rs` for a complete, runnable
example.

Parameter types ([`IndexParams`], [`SearchParams`], ...) use the [`bon`]
builder pattern: every setter is optional and unset values keep the cuVS C
library defaults. Values are validated when the builder's `build()` runs,
returning [`CagraError::Validation`] for out-of-range inputs.

## crate::neighbors::filters::\{Bitset, Filter\}

```rust
pub use crate::neighbors::filters::{Bitset, Filter};
```

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:23`_

## index::Index

```rust
pub use index::Index;
```

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:24`_

## params::\{CompressionParams, IndexParams, SearchParams\}

```rust
pub use params::{CompressionParams, IndexParams, SearchParams};
```

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:25`_

## GraphBuildAlgo

```rust
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
#[non_exhaustive]
pub enum GraphBuildAlgo {
    /* variants omitted */
}
```

Algorithm for building the internal k-NN graph.

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:33`_

## SearchAlgo

```rust
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
#[non_exhaustive]
pub enum SearchAlgo {
    /* variants omitted */
}
```

Search kernel implementation.

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:73`_

## HashMode

```rust
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
#[non_exhaustive]
pub enum HashMode {
    /* variants omitted */
}
```

Hash-table mode used during search.

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:109`_

## CagraError

```rust
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum CagraError {
    /* variants omitted */
}
```

Error type for CAGRA operations.

_Source: `rust/cuvs/src/neighbors/cagra/mod.rs:141`_