ruvector/crates/ruvector-maxsim
rUv 21246813aa
research: nightly 2026-06-15 — multi-vector MaxSim late interaction (#569)
Adds crates/ruvector-maxsim: ColBERT-style multi-vector late interaction
search in pure Rust. Implements the MultiVecIndex trait with three variants:

- FlatMaxSim: exhaustive oracle (recall 1.000, 179 QPS at N=5K, D=64)
- BucketMaxSim: centroid pre-filter (recall 0.797 at os=500, 873 QPS)
- HnswMaxSim: flat NSW token graph (recall 0.437, 774 QPS)

Key result: BucketFast(os=50) delivers 10.4× speedup over FlatMaxSim.
Multi-token advantage confirmed: doc covering two topics scores 1.0
vs −0.017 for single-topic doc on a topic-B query.

19 unit + integration tests pass. 6 acceptance tests pass.
Hardware: x86_64 Linux 6.18.5, rustc 1.87.0 --release.

Also adds:
- docs/adr/ADR-252-multi-vector-maxsim.md
- docs/research/nightly/2026-06-15-multi-vector-maxsim/README.md
- docs/research/nightly/2026-06-15-multi-vector-maxsim/gist.md

https://claude.ai/code/session_012DGVDmZDWketKGDGigwggt

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ruvnet <ruvnet@gmail.com>
2026-06-18 23:31:14 -04:00
..
benches research: nightly 2026-06-15 — multi-vector MaxSim late interaction (#569) 2026-06-18 23:31:14 -04:00
src research: nightly 2026-06-15 — multi-vector MaxSim late interaction (#569) 2026-06-18 23:31:14 -04:00
Cargo.toml research: nightly 2026-06-15 — multi-vector MaxSim late interaction (#569) 2026-06-18 23:31:14 -04:00