Skip to contents

Exact indices

Recall 1 by construction

ExhaustiveIndex
Exhaustive (brute-force) index
KmknnIndex
kMkNN index

Tree indices

Random projection and space partitioning forests

AnnoyIndex
Annoy index
KdTreeIndex
kd forest index
BallTreeIndex
Ball tree index

Partition indices

k-means cells and hashing

IvfIndex
IVF index
SoarIndex
SOAR index
LshIndex
LSH index

Graph indices

Navigable neighbour graphs

HnswIndex
HNSW index
NNDescentIndex
NN-Descent index
VamanaIndex
Vamana index
NsgIndex
NSG index
RnnDescentIndex
Relative NN-Descent index

Shared interface

Querying, saving and loading any index

AnnIndex
Base class for all nearest neighbour indices
predict(<AnnIndex>)
Query an index
load_ann_index()
Load an index written by $save()

Utilities

ann_set_threads()
Set the number of threads for index builds and queries
ann_get_threads()
Number of threads used for index builds and queries
knn_recall()
Recall of an approximate kNN result

Synthetic data

The generators behind the ann-search-rs benchmark tables

generate_clustered_data()
Generate clustered synthetic data
generate_correlated_data()
Generate correlated synthetic data
generate_low_rank_data()
Generate low-rank synthetic data
generate_cell_embeddings()
Generate synthetic cell embeddings
subsample_queries()
Subsample queries from a dataset

Rust wrappers

Everything rusty - only use this if you know what you are doing…

rs_ann_info() experimental
Describe an index
rs_ann_load() experimental
Load an index from a directory
rs_ann_save() experimental
Save an index to a directory
rs_annoy_build() experimental
Build an Annoy index
rs_annoy_query() experimental
Query an Annoy index
rs_annoy_self() experimental
Self-query an Annoy index
rs_balltree_build() experimental
Build a ball tree index
rs_balltree_query() experimental
Query a ball tree index
rs_balltree_self() experimental
Self-query a ball tree index
rs_data_cell_embeddings() experimental
Generate synthetic cell embeddings
rs_data_clustered() experimental
Generate clustered synthetic data
rs_data_correlated() experimental
Generate correlated synthetic data
rs_data_low_rank() experimental
Generate low-rank synthetic data
rs_exhaustive_build() experimental
Build an exhaustive index
rs_exhaustive_query() experimental
Query an exhaustive index
rs_exhaustive_self() experimental
Self-query an exhaustive index
rs_get_threads() experimental
Number of threads used for builds and queries
rs_hnsw_build() experimental
Build an HNSW index
rs_hnsw_query() experimental
Query an HNSW index
rs_hnsw_self() experimental
Self-query an HNSW index
rs_ivf_build() experimental
Build an IVF index
rs_ivf_query() experimental
Query an IVF index
rs_ivf_self() experimental
Self-query an IVF index
rs_kdtree_build() experimental
Build a kd forest index
rs_kdtree_query() experimental
Query a kd forest index
rs_kdtree_self() experimental
Self-query a kd forest index
rs_kmknn_build() experimental
Build a kMkNN index
rs_kmknn_query() experimental
Query a kMkNN index
rs_kmknn_self() experimental
Self-query a kMkNN index
rs_knn_recall() experimental
Recall of an approximate kNN result against ground truth
rs_lsh_build() experimental
Build an LSH index
rs_lsh_query() experimental
Query an LSH index
rs_lsh_self() experimental
Self-query an LSH index
rs_nndescent_build() experimental
Build an NN-Descent index
rs_nndescent_extract() experimental
Extract the converged NN-Descent graph
rs_nndescent_query() experimental
Query an NN-Descent index
rs_nndescent_self() experimental
Self-query an NN-Descent index
rs_nsg_build() experimental
Build an NSG index
rs_nsg_query() experimental
Query an NSG index
rs_nsg_self() experimental
Self-query an NSG index
rs_rnndescent_build() experimental
Build a relative NN-Descent index
rs_rnndescent_query() experimental
Query a relative NN-Descent index
rs_rnndescent_self() experimental
Self-query a relative NN-Descent index
rs_set_threads() experimental
Set the number of threads used for builds and queries
rs_soar_build() experimental
Build a SOAR index
rs_soar_query() experimental
Query a SOAR index
rs_soar_self() experimental
Self-query a SOAR index
rs_subsample_queries() experimental
Subsample queries with noise
rs_vamana_build() experimental
Build a Vamana index
rs_vamana_query() experimental
Query a Vamana index
rs_vamana_self() experimental
Self-query a Vamana index