Skip to main content

Crate ordvec

Crate ordvec 

Source
Expand description

Training-free ordinal & sign quantization for vector retrieval.

ordvec is a training-free ordinal/sign retrieval substrate, developed within the turbovec project (MIT, by Ryan Codrai) and factored out here as a standalone crate. It carries no system dependencies — no BLAS, no ndarray, no faer — and needs no training, rotation, or codebook. Norms are analytical.

Four substrate families, all data-oblivious:

  • Rank stores full-precision rank vectors (u16 per coordinate, 2 * dim bytes per document).
  • RankQuant buckets each rank into 1 << bits equal-width bins and packs bits bits per coordinate (dim * bits / 8 bytes per document).
  • Bitmap stores a top-bucket bitmap per document (one bit per coordinate) and scores via popcount(Q AND D).
  • SignBitmap stores a sign bitmap per document (one bit per coordinate, set when the coordinate is positive) for sign-cosine candidate generation.
use ordvec::{Rank, RankQuant};

let mut idx = RankQuant::new(1024, 2);
let docs: Vec<f32> = vec![0.0; 1024 * 10_000];
idx.add(&docs);

let queries: Vec<f32> = vec![0.0; 1024 * 4];
let res = idx.search_asymmetric(&queries, 10);
assert_eq!(res.k, 10);

Re-exports§

pub use rank::Rank;
pub use sign_bitmap::SignBitmap;

Modules§

rank
Rank math primitives and the Rank index type. Rank-cosine math primitives and the full-precision Rank index.
rank_io
Read/write ordinal/sign index files.
sign_bitmap
Sign-cosine bitmap retrieval substrate.

Structs§

Bitmap
Top-bucket bitmap index for constant-composition coarse scoring.
RankQuant
B-bit RankQuant index.
SearchResults
Top-k search results, laid out as nq contiguous blocks of k.

Type Aliases§

BitmapIndexDeprecated
RankIndexDeprecated
RankQuantIndexDeprecated
SignBitmapIndexDeprecated