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.