Skip to main content

Module hybrid

Module hybrid 

Source
Expand description

Hybrid search combining dense and sparse retrieval. Hybrid search combining dense and sparse retrieval.

This module provides fusion algorithms and search orchestration for combining dense semantic search (HNSW) with sparse keyword search (BM25).

§Fusion Methods

Two fusion methods are supported:

  1. Reciprocal Rank Fusion (RRF): Combines ranks using score(d) = sum(1 / (k + rank_i(d))). Robust, parameter-insensitive.

  2. Linear Combination: Combines normalized scores using score(d) = alpha * dense_score + (1 - alpha) * sparse_score.

§Example

use edgevec::hybrid::{rrf_fusion, FusionResult};

// Dense search results: [(id, score), ...]
let dense = vec![(1, 0.95), (2, 0.80), (3, 0.75)];

// Sparse search results: [(id, score), ...]
let sparse = vec![(2, 5.5), (4, 4.2), (1, 3.8)];

// Fuse with RRF (k=60)
let fused = rrf_fusion(&dense, &sparse, 60, 10);

// Results combine ranks from both lists
for result in &fused {
    println!("ID: {}, RRF Score: {}", result.id, result.score);
}

Structs§

FusionResult
Result from fusion algorithm.
HybridSearchConfig
Configuration for hybrid search.
HybridSearchResult
Result from hybrid search.
HybridSearcher
Hybrid search combining dense and sparse retrieval.

Enums§

FusionMethod
Fusion method configuration.
HybridError
Errors that can occur during hybrid search.

Constants§

RRF_DEFAULT_K
Default k parameter for RRF fusion.

Functions§

linear_fusion
Linear combination fusion algorithm.
rrf_fusion
Reciprocal Rank Fusion (RRF) algorithm.