Module hybrid

Module hybrid 

Source
Expand description

Hybrid Search: Vector + Keyword (BM25)

Combines semantic vector search with lexical keyword search for improved results.

§Algorithm

  • Vector Search: Semantic similarity using embeddings
  • Keyword Search: BM25 scoring for lexical matching
  • Fusion: Reciprocal Rank Fusion (RRF) or weighted combination

§Example

use oxify_vector::hybrid::{HybridIndex, HybridConfig};
use std::collections::HashMap;

// Create documents with text and embeddings
let mut embeddings = HashMap::new();
embeddings.insert("doc1".to_string(), vec![0.1, 0.2, 0.3]);
embeddings.insert("doc2".to_string(), vec![0.2, 0.3, 0.4]);

let mut texts = HashMap::new();
texts.insert("doc1".to_string(), "rust programming language".to_string());
texts.insert("doc2".to_string(), "python machine learning".to_string());

// Build hybrid index
let config = HybridConfig::default();
let mut index = HybridIndex::new(config);
index.build(&embeddings, &texts)?;

// Hybrid search
let query_vector = vec![0.15, 0.25, 0.35];
let query_text = "rust programming";
let results = index.search(&query_vector, query_text, 2)?;

Structs§

Bm25Config
BM25 parameters
HybridConfig
Hybrid search configuration
HybridIndex
Hybrid search index combining vector and keyword search
HybridSearchResult
Hybrid search result
HybridStats
Hybrid index statistics