Home / Hybrid search / Score Fusion in Hybrid Search: Every Method Compared

Explainer

Score Fusion in Hybrid Search: Every Method Compared

Score fusion is the step in hybrid search that merges the keyword result list and the vector result list into one ranking. The main methods differ in whether they use ranks, normalised scores or a learned model. Reciprocal rank fusion (RRF) scores each document by 1 divided by a constant plus its rank in each list, ignoring raw scores. Score-based methods first normalise each list, by min-max scaling as in relative score fusion or by standardising with the mean and spread. They then add the scores with a weight, a convex combination. Older metasearch methods such as CombSUM and CombMNZ add normalised scores across many lists. Learned fusion trains a ranking model on labelled data. Weaviate offers rankedFusion, an RRF variant, and relativeScoreFusion, its default since version 1.24. No method wins everywhere, so compare two on your own queries.

Score fusion methods in four facts

  • Rank-based fusion uses positions only; score-based fusion uses normalised scores and keeps the size of gaps.
  • RRF, from Cormack and colleagues in 2009, scores 1 / (k + rank), with k = 60 the common choice.
  • At k = 60, a rank-1 result counts only 1.15 times as much as a rank-10 result.
  • Bruch and colleagues found in 2023 that a tuned convex combination generally beat RRF.

What is score fusion in hybrid search?

Score fusion in hybrid search is the method that combines separate keyword and vector result lists into a single ranked list. It is needed because the two searches score documents on unrelated scales.

A hybrid query, as described in how hybrid search works, runs BM25 and a vector search side by side. BM25 scores are unbounded and depend on term rarity and query length. Vector similarities sit in a narrow, model-dependent band. Adding them raw lets whichever has larger numbers dominate. Fusion fixes this by converting both lists to a common footing first.

The same problem arose decades earlier in metasearch, where results from several search engines had to be merged. Much of today’s hybrid fusion reuses methods from that work. “Fusion score” is simply the combined score a document receives after this step, and it is what the final ranking sorts by.

What are the main families of score fusion methods?

The main families of score fusion methods are rank-based fusion, score-based fusion and learned fusion. They trade robustness, information and data needs against each other.

Families of score fusion methods: rank-based, such as RRF with 1 divided by k plus rank and Borda count, which ignore score size and are robust to scale but lose gaps; score-based, such as min-max relative score, z-score or distribution-based normalisation, and CombSUM and CombMNZ, which keep gaps but are sensitive to outliers; learned, such as learning to rank with features from both lists trained on judgments, the best fit but needing labelled data; Weaviate offers rankedFusion and relativeScoreFusion
The three families. Score-based fusion, highlighted, includes Weaviate’s default method.

Rank-based methods look only at where a document appears in each list. They are immune to odd score scales but cannot tell a near tie from a landslide. Score-based methods normalise scores, then combine them, so a clear winner keeps its lead, but an outlier or a short list can distort the normalisation. Learned methods feed scores, ranks and other features into a model trained on relevance labels, which can fit a domain well but needs data and upkeep.

Most production systems use one of the first two, because they need no training. Learned fusion appears in larger search teams with click data or judged queries, often as part of a reranking stage rather than the fusion step itself.

How does reciprocal rank fusion work?

Reciprocal rank fusion works by giving each document a score of 1 divided by a constant k plus its rank in each list, and adding those scores across lists. Documents ranked well in several lists rise to the top.

How the RRF constant k flattens rank differences, shown as the weight of rank 1 relative to rank 10, equal to k plus 10 divided by k plus 1: k 0 gives 10 times, k 1 gives 5.5 times, k 10 gives 1.82 times, k 60 gives 1.15 times; with the common k of 60 the top result counts only 1.15 times as much as the tenth; smaller k trusts the top of each list more
The effect of k on RRF, computed exactly. The common setting of 60, highlighted, makes rank differences small.

Cormack, Clarke and Büttcher proposed RRF in 2009 and reported that it beat several other fusion methods on TREC data, with k set to 60. The constant controls how steeply credit falls with rank. With k at 60, the first result scores 1/61 and the tenth 1/70, a ratio of only 1.15. With k at 1, the same ratio is 5.5. Implementations differ in whether ranks start at 0 or 1, which shifts scores slightly but not the idea.

RRF’s strength is that it needs no score normalisation and works for any number of lists. Its weakness is that it discards how far apart scores were. Reciprocal rank fusion covers the method in depth. Weaviate’s rankedFusion follows this formula with a constant of 60.

How do score-based fusion methods work?

Score-based fusion methods work by normalising each list’s scores onto a common scale, then adding them, usually with a weight for each list. The choice of normalisation is what separates them.

Min-max normalisation maps each list’s highest score to 1 and lowest to 0. It is the basis of Weaviate’s relativeScoreFusion, detailed in relative score fusion. Z-score normalisation subtracts the list’s mean and divides by its standard deviation, which is less affected by one extreme value. Distribution-based variants clip scores at a few standard deviations from the mean before scaling. Montague and Aslam studied these normalisations for metasearch in 2001. Score normalization compares them.

After normalisation, the scores are combined. A convex combination weights the vector score by alpha and the keyword score by 1 minus alpha. Fox and Shaw’s CombSUM simply adds normalised scores across lists, and CombMNZ multiplies that sum by the number of lists that returned the document. That rewards documents found by several systems.

The weight in a convex combination is the main tuning knob. A weight near 1 trusts the vector list, a weight near 0 trusts the keyword list, and the best value depends on how often users type exact names, codes or rare terms. Tune it on judged queries from your own traffic, and recheck it when the embedding model or the content mix changes.

Which score fusion method works best?

No score fusion method works best everywhere, but research suggests a tuned convex combination of normalised scores often beats RRF, while RRF is a safe default when scores are unpredictable. Your data decides.

Bruch, Gai and Ingber analysed fusion functions for hybrid retrieval in 2023. They found that a convex combination of normalised scores generally outperformed RRF, in domain and out of domain, and needed only a small set of examples to tune its weight. They also reported that RRF was sensitive to its constant, which is often left at 60 without testing. Weaviate reported about 6 percent better recall for relativeScoreFusion over rankedFusion on the FiQA dataset in internal tests, and made it the default.

RRF still has a place. It handles more than two lists without extra weights, and it is unaffected when one list’s scores behave strangely, for example a BM25 list with a single match. Score-based fusion is the better bet when both lists are well behaved and gap sizes carry meaning.

How does each fusion method fail?

Each fusion method fails in a characteristic way: RRF flattens strong signals, min-max stretches small or poor lists, z-scores mislead on very short lists, and learned fusion drifts when data changes. Knowing the failure helps diagnose odd rankings.

RRF can rank a document that is second in both lists above one that is first in one list by a huge margin and tenth in the other. Min-max always gives the best item in each list a score of 1, even when that item is poor, so one weak keyword hit can be promoted. Z-scores need enough results to estimate a mean and spread, and become noisy with few results. Learned models degrade when queries, content or click behaviour shift away from their training data.

Mitigations exist for each. Raise candidate pool sizes so normalisation sees more of each list. Tune k or alpha on judged queries instead of using defaults blindly. Retrain learned models on a schedule. Balancing keyword and vector scores covers the weight side of this tuning.

How do you choose a fusion method in Weaviate?

You choose a fusion method in Weaviate with the fusion_type parameter of a hybrid query, picking relativeScoreFusion or rankedFusion, and set the balance with alpha. Test both on the same judged queries.

from weaviate.classes.query import HybridFusion

for fusion in (HybridFusion.RELATIVE_SCORE, HybridFusion.RANKED):
    response = docs.query.hybrid(query="reset two-factor login",
                                 alpha=0.5, fusion_type=fusion, limit=10)
    # score each response against your judged results

Weaviate’s documentation notes that autocut only works with relativeScoreFusion, because rank-based scores have no natural gaps to cut at. For a full walk-through of building and testing hybrid queries, see the hybrid search tutorial. Other databases expose different sets of methods, compared in databases that support hybrid search and hybrid search in SQL databases.

When does the choice of fusion method matter most?

The choice of fusion method matters most when only the top few results are used, as in RAG, and when keyword and vector searches often disagree. If the two lists usually agree, any method gives similar results.

In hybrid search for RAG, the top three to ten passages reach the language model, so small ranking changes alter answers. In enterprise search, exact names and codes often favour keyword matches with large score gaps, which score-based fusion preserves. At scale, candidate pools come from many shards, as in hybrid search on distributed databases.

Before tuning fusion, confirm hybrid search is the right approach. What is hybrid search, when to use hybrid search and hybrid search vs vector search cover that decision.

Score fusion merges keyword and vector results into one ranking. Rank-based fusion, led by RRF with 1 / (k + rank), is robust but flattens strong signals; at k = 60 the first result counts only 1.15 times the tenth. Score-based fusion normalises scores by min-max or z-score and combines them with a weight, keeping gap sizes but reacting to outliers. Learned fusion fits best but needs labelled data. Research and Weaviate’s own tests favour tuned score-based fusion, Weaviate’s default since 1.24. Compare methods on your own judged queries.

Keep going

See all 15 hybrid search guides

Search guides