MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / budgeted_maxsim

Function budgeted_maxsim

nodedb-vector/src/multivec/scoring.rs:64–72  ·  view source on GitHub ↗

Budgeted MaxSim: only uses the first `budget` query vectors (Matryoshka ordering). When `budget` equals or exceeds `query.len()` this is equivalent to `maxsim`. Returns 0.0 if either side is empty or budget is 0.

(
    query: &[Vec<f32>],
    doc: &[Vec<f32>],
    budget: u8,
    metric: DistanceMetric,
)

Source from the content-addressed store, hash-verified

62///
63/// Returns 0.0 if either side is empty or budget is 0.
64pub fn budgeted_maxsim(
65 query: &[Vec<f32>],
66 doc: &[Vec<f32>],
67 budget: u8,
68 metric: DistanceMetric,
69) -> f32 {
70 let effective = (budget as usize).min(query.len());
71 maxsim(&query[..effective], doc, metric)
72}
73
74// ---------------------------------------------------------------------------
75// Tests

Calls 2

maxsimFunction · 0.85
lenMethod · 0.45