Info

ANN-Benchmarks is a benchmarking environment for approximate nearest neighbor algorithms search. This website contains the current benchmarking results. Please visit http://github.com/erikbern/ann-benchmarks/ to get an overview over evaluated data sets and algorithms. Make a pull request on Github to add your own code or improvements to the benchmarking system.

Benchmarking Results

Results are split by distance measure and dataset. In the bottom, you can find an overview of an algorithm's performance on all datasets. Each dataset is annoted by (k = ...), the number of nearest neighbors an algorithm was supposed to return. The plot shown depicts Recall (the fraction of true nearest neighbors found, on average over all queries) against Queries per second. Clicking on a plot reveils detailled interactive plots, including approximate recall, index size, and build time.

Benchmarks for Single Queries

Results by Dataset

Distance: Angular

glove-100-angular (k = 10)


glove-25-angular (k = 10)


nytimes-256-angular (k = 10)


Distance: Euclidean

fashion-mnist-784-euclidean (k = 10)


gist-960-euclidean (k = 10)


sift-128-euclidean (k = 10)


Distance: Hamming

sift-256-hamming (k = 10)


word2bits-800-hamming (k = 10)


Distance: Jaccard

kosarak-jaccard (k = 10)


Results by Algorithm

faiss-ivf


scann


pgvector


annoy


glass


hnswlib


BallTree(nmslib)


vald(NGT-anng)


hnsw(faiss)


NGT-qg


qdrant


n2


Milvus(Knowhere)


qsgngt


faiss-ivfpqfs


mrpt


redisearch


SW-graph(nmslib)


NGT-panng


pynndescent


vearch


hnsw(vespa)


vamana(diskann)


flann


luceneknn


weaviate


puffinn


hnsw(nmslib)


bruteforce-blas


tinyknn


NGT-onng


elastiknn-l2lsh


sptag


ckdtree


kd


opensearchknn


datasketch


bf


Contact

ANN-Benchmarks has been developed by Martin Aumueller (maau@itu.dk), Erik Bernhardsson (mail@erikbern.com), and Alec Faitfull (alef@itu.dk). Please use Github to submit your implementation or improvements.