GenericVectorBuilder

Benchmark

Summary and all runs

eShopOnWeb: medians of 3 runs

This set is marked withdrawn by its folder name. It is not the current result and is kept for the record.

Report text as it was written, kept for the record

Not publishable as is. On 2026-10-04 independent checks found method problems in these runs: run order changed timings, the qdrant-hnsw target never built its HNSW index at 524 points (so both Qdrant rows are scans), Milvus and Oracle were searched without waiting for their index builds, and SQL DiskANN was compared against SQL exact across different runs. The fix was stopped partway; see design/dead-drafts/.

rankenginesearches/s, 8 at oncesearches/s, 1 at a timep50 msload rows/srecall@10nDCG@10errors
1mariadb4,558 (4,132 to 4,559)458 (435 to 502)1.98 (1.69 to 2.34)6811.0000.5180
2pgvector3,823 (3,312 to 3,831)403 (399 to 468)2.87 (1.97 to 3.03)5281.0000.5180
3qdrant-hnsw3,355 (3,041 to 3,432)412 (408 to 429)2.42 (2.26 to 2.57)5,9651.0000.5180
4qdrant3,213 (3,051 to 3,444)425 (408 to 436)2.30 (1.56 to 2.79)2,7211.0000.5180
5mongodb2,807 (2,427 to 2,928)253 (225 to 308)5.51 (4.96 to 8.14)2,3221.0000.5180
6elasticsearch2,544 (2,543 to 2,632)160 (148 to 167)11.76 (11.03 to 13.19)4741.0000.5180
7redis2,107 (2,011 to 3,154)783 (768 to 820)1.51 (1.22 to 1.86)6,8741.0000.5180
8opensearch1,875 (1,702 to 1,967)145 (130 to 150)10.62 (9.83 to 12.29)4141.0000.5180
9milvus1,691 (1,493 to 1,724)151 (138 to 154)7.42 (7.12 to 8.27)7451.0000.5180
10vespa1,553 (1,489 to 1,564)201 (174 to 219)6.41 (6.38 to 6.53)4981.0000.5180
11sql-diskann1,003 (890 to 1,025)227 (205 to 248)4.50 (4.24 to 4.56)6680.9650.5260
12typesense944 (896 to 974)106 (95 to 136)8.92 (5.59 to 11.89)7641.0000.5180
13sql806 (765 to 914)192 (178 to 196)6.72 (6.52 to 6.81)5501.0000.5180
14oracle671 (509 to 695)269 (245 to 289)5.56 (4.85 to 5.60)1,4861.0000.5180
15clickhouse665 (625 to 711)167 (151 to 168)6.25 (6.22 to 6.88)2,7110.9950.5280
16chroma600 (331 to 610)168 (157 to 194)6.01 (5.98 to 6.63)4311.0000.5180
17weaviate523 (485 to 541)64 (63 to 82)15.36 (15.33 to 16.11)7351.0000.5180
18sqlitevec458 (457 to 528)527 (503 to 545)2.16 (2.07 to 2.16)4,0271.0000.5180
19duckdb181 (171 to 200)255 (247 to 257)4.05 (4.00 to 4.06)1,5301.0000.5180

Redis holds everything in memory; as configured here it snapshots every 5 minutes with no append-only log, so a crash can lose recent writes.

Raw files