Skip to main content

Module search

Module search 

Source
Expand description

Hybrid search: BM25 + vector similarity with Reciprocal Rank Fusion.

Provides a unified search interface that combines keyword (BM25) and semantic (vector) search results using RRF for optimal relevance.

use llm_kernel::search::{SearchResult, rrf_fuse};

let bm25 = vec![
    SearchResult { id: "doc1".into(), score: 0.9, text: "Rust programming".into() },
    SearchResult { id: "doc2".into(), score: 0.7, text: "Python basics".into() },
];
let vector = vec![
    SearchResult { id: "doc2".into(), score: 0.95, text: "Python basics".into() },
    SearchResult { id: "doc3".into(), score: 0.6, text: "Go concurrency".into() },
];

let fused = rrf_fuse(&[bm25, vector], 60);
assert!(!fused.is_empty());

Re-exports§

pub use federation::FusionStrategy;
pub use federation::federate_results;
pub use fusion::combmnz_fuse;
pub use fusion::normalize_minmax;
pub use fusion::weighted_sum_fuse;
pub use provider::KeywordIndex;
pub use provider::SearchProvider;
pub use rrf::rrf_fuse;
pub use types::SearchResult;
pub use federation::FederatedSearch;

Modules§

federation
Cross-engine search federation over multiple vector backends.
fusion
Score normalization and alternative list-fusion strategies.
provider
Pluggable search backends behind a unified sync interface.
rrf
Reciprocal Rank Fusion (RRF) for combining multiple ranked result sets.
types
Search result types.