Expand description
Multi-Index Search
Search across multiple indexes in parallel and combine results.
§Use Cases
- Federated search across data shards
- Searching different index types (exact + approximate)
- Temporal data with separate indexes per time period
- Multi-tenant scenarios with per-tenant indexes
§Example
use oxify_vector::{MultiIndexSearch, VectorSearchIndex, SearchConfig};
use std::collections::HashMap;
// Create multiple indexes
let mut index1 = VectorSearchIndex::new(SearchConfig::default());
let mut embeddings1 = HashMap::new();
embeddings1.insert("doc1".to_string(), vec![1.0, 0.0]);
index1.build(&embeddings1)?;
let mut index2 = VectorSearchIndex::new(SearchConfig::default());
let mut embeddings2 = HashMap::new();
embeddings2.insert("doc2".to_string(), vec![0.0, 1.0]);
index2.build(&embeddings2)?;
// Search across both indexes
let multi_search = MultiIndexSearch::new();
let query = vec![0.5, 0.5];
let results = multi_search.search(&[&index1, &index2], &query, 10)?;
// Results are merged and sorted by score
for result in results {
println!("{}: score = {:.4}", result.entity_id, result.score);
}Structs§
- Multi
Index Config - Configuration for multi-index search
- Multi
Index Search - Multi-index search coordinator
Enums§
- Score
Merge Strategy - Strategy for merging scores when same entity appears in multiple indexes