All values are taken at exactly the stated recall: each configuration's own sweep is log-interpolated between its two surrounding measured points (measured values are used verbatim on an exact hit) and the best configuration at that recall is shown — values are never interpolated across different configurations. “—” means no single sweep spans that recall; nothing is extrapolated. Recall is distance-based (ann-benchmarks, tie-aware). Insert/update/delete workloads are not measured.
Interpolated on config — Meerkat @0.90: mkt-n16000-cctrue-fs16-soar · pgvector HNSW @0.90: hnsw-m24 · Meerkat @0.95: mkt-n16000-ccfalse-fs16-soar · pgvector HNSW @0.95: hnsw-m24 · Meerkat @0.99: mkt-n16000-ccfalse-fs16-soar · pgvector HNSW @0.99: hnsw-m24
Build stats are for the configuration backing each column's best operating point: Meerkat = mkt-n16000-ccfalse-fs16-soar · pgvector HNSW = hnsw-m24.
Index parameters
hnsw-m24: {"column_type":"vector","ef_construction":200,"m":24}
hnsw-m24-bq: {"column_type":"bit","ef_construction":200,"m":24}
mkt-n16000-ccfalse-fs16: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":16000,"rerank_vectors":null,"soar_lambda":null}
mkt-n16000-ccfalse-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":16000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n16000-cctrue-fs16: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":16000,"rerank_vectors":null,"soar_lambda":null}
mkt-n16000-cctrue-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":16000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n2000-ccfalse-fs16: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":2000,"rerank_vectors":null,"soar_lambda":null}
mkt-n2000-ccfalse-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":2000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n2000-cctrue-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":2000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n4000-ccfalse-fs16: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":4000,"rerank_vectors":null,"soar_lambda":null}
mkt-n4000-ccfalse-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":4000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n4000-cctrue-fs16: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":4000,"rerank_vectors":null,"soar_lambda":null}
mkt-n4000-cctrue-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":4000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n8000-ccfalse-fs16: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":8000,"rerank_vectors":null,"soar_lambda":null}
mkt-n8000-ccfalse-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":false,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":8000,"rerank_vectors":null,"soar_lambda":1.0}
mkt-n8000-cctrue-fs16: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":8000,"rerank_vectors":null,"soar_lambda":null}
mkt-n8000-cctrue-fs16-soar: {"boundary_epsilon":0.05,"centroid_compression":true,"fan_out":null,"fastscan":true,"fastscan_bits":null,"nlist":8000,"rerank_vectors":null,"soar_lambda":1.0}