Skip to main content

combmnz_fuse

Function combmnz_fuse 

Source
pub fn combmnz_fuse(
    result_sets: &[Vec<SearchResult>],
    k: usize,
) -> Vec<SearchResult>
Expand description

CombMNZ fusion.

For each distinct id, the fused score is MNZ(d) * Σ_i score_i(d), where MNZ(d) is the number of result lists whose top-k contains the document. Text is taken from the first list that contains the document. The result is sorted descending by score.

This is the canonical CombMNZ combination (Fox & Shaw, 1994): a document appearing near the top of many lists is boosted multiplicatively, so broad agreement across backends outranks a single high score.

Inputs should be normalized first (e.g. via normalize_minmax) so that score magnitudes are comparable across lists.

§Precondition

k must be at least 1. With k == 0 no document is ever in any top-k, so every MNZ(d) is 0 and all fused scores collapse to zero; the call is therefore treated as programmer error and panics (matching weighted_sum_fuse’s precondition handling).