Benchmark

ANN Search Benchmark

codelibs/search-ann-benchmark evaluates the performance of various Approximate Nearest Neighbor (ANN) algorithms, comparing both response time and accuracy metrics. This provides a comprehensive comparison of ANN-enabled systems for handling high-dimensional data spaces.

Overview

The tests focus on two main metrics:

  • QTime(msec): The time taken to respond to a search query, calculated as the average time for 10,000 queries.
  • Precision@K: The accuracy of the search results for K=10 and K=100.

The tables also include columns labeled "Top 10" and "Top 100," which indicate the number of results retrieved:

  • Top 10: Retrieves the top 10 results.
  • Top 100: Retrieves the top 100 results.

Results

The tests involve searching through a dataset of 100,000 vectors with 768 dimensions, yielding the following results:

ANN Search (Vector Only)

Product Top 10 Top 100 Test Date
QTime Precision@10 QTime Precision@100
chroma 0.5.7 5.2482 0.99225 8.0238 0.95742 2024-09-26
elasticsearch 8.17.3 3.0325 0.99550 10.1086 0.98412 2025-03-07
elasticsearch 8.17.3 (int8) 1.6846 0.95740 8.8057 0.96017 2025-03-07
elasticsearch 8.17.3 (int4) 4.3454 0.82036 11.7798 0.84561 2025-03-07
elasticsearch 8.17.3 (bbq) 1.6176 0.66786 8.7355 0.71723 2025-03-07
milvus 2.5.4 3.6221 0.93626 4.3812 0.96365 2025-02-21
opensearch 2.19.1 1.7832 0.87648 9.9277 0.98408 2025-02-28
opensearch 2.19.1 (faiss) 6.4687 0.99962 12.1940 0.99695 2025-02-28
pgvector 0.8.0-pg17 17.4892 0.99619 18.3212 0.97699 2024-11-29
qdrant 1.13.4 2.0733 0.99959 2.2219 0.99668 2025-02-18
qdrant 1.13.4 (int8) 1.0546 0.92332 1.2131 0.94062 2025-02-18
vespa 8.472.109 1.9864 0.99099 2.2666 0.95164 2025-02-04
weaviate 1.28.2 5.5044 0.99290 6.4320 0.95707 2025-01-07

ANN Search with Keyword Filtering

Product Top 10 Top 100 Test Date
QTime Precision@10 QTime Precision@100
chroma 0.5.7 - - - - 2024-09-26
elasticsearch 8.17.3 3.0553 0.99899 10.5469 0.99922 2025-03-07
elasticsearch 8.17.3 (int8) 1.7632 0.95547 8.9324 0.96988 2025-03-07
elasticsearch 8.17.3 (int4) 5.1460 0.81314 12.8581 0.86001 2025-03-07
elasticsearch 8.17.3 (bbq) 1.5890 0.66679 8.8286 0.74989 2025-03-07
milvus 2.5.4 4.0947 0.92782 4.8623 0.92482 2025-02-21
opensearch 2.19.1 3.5636 0.99412 9.8582 0.99986 2025-02-28
opensearch 2.19.1 (faiss) 2.0508 1.00000 7.6206 0.99999 2025-02-28
pgvector 0.8.0-pg17 17.7521 0.34090 17.9696 0.05644 2024-11-29
qdrant 1.13.4 0.8724 0.99993 0.9662 0.99960 2025-02-18
qdrant 1.13.4 (int8) 0.5261 0.92533 0.6401 0.94864 2025-02-18
vespa 8.472.109 4.1147 0.99981 4.5928 0.99374 2025-02-04
weaviate 1.28.2 6.4203 0.99990 7.4898 0.99988 2025-01-07

The tests are run on GitHub Actions, and the results are collected and summarized in tables. These benchmarks provide basic reference values, allowing users to evaluate and select an appropriate system based on their specific requirements. Be sure to test and verify the chosen solution's performance in your particular context before deployment.