Skip to main content

ruvector_core/
advanced_features.rs

1//! Advanced Features for Ruvector
2//!
3//! This module provides advanced vector database capabilities:
4//! - Enhanced Product Quantization with precomputed lookup tables
5//! - Filtered Search with automatic strategy selection
6//! - MMR (Maximal Marginal Relevance) for diversity
7//! - Hybrid Search combining vector and keyword matching
8//! - Conformal Prediction for uncertainty quantification
9//! - Multi-Vector Retrieval (ColBERT-style late interaction)
10//! - Matryoshka Representation Learning (adaptive-dimension search)
11//! - Optimized Product Quantization (OPQ) with learned rotation matrix
12
13pub mod compaction;
14pub mod conformal_prediction;
15pub mod diskann;
16pub mod filtered_search;
17pub mod graph_rag;
18pub use graph_rag::{
19    CommunityDetection, Community, Entity, GraphRAGConfig, GraphRAGPipeline, KnowledgeGraph,
20    Relation, RetrievalResult,
21};
22pub mod hybrid_search;
23pub mod matryoshka;
24pub mod mmr;
25pub mod multi_vector;
26pub mod opq;
27pub mod product_quantization;
28pub mod sparse_vector;
29
30// Re-exports
31pub use conformal_prediction::{
32    ConformalConfig, ConformalPredictor, NonconformityMeasure, PredictionSet,
33};
34pub use filtered_search::{FilterExpression, FilterStrategy, FilteredSearch};
35pub use hybrid_search::{HybridConfig, HybridSearch, NormalizationStrategy, BM25};
36pub use matryoshka::{FunnelConfig, MatryoshkaConfig, MatryoshkaIndex};
37pub use mmr::{MMRConfig, MMRSearch};
38pub use multi_vector::{MultiVectorConfig, MultiVectorIndex, ScoringVariant};
39pub use opq::{OPQConfig, OPQIndex, RotationMatrix};
40pub use product_quantization::{EnhancedPQ, LookupTable, PQConfig};
41pub use sparse_vector::{
42    FusionConfig, FusionStrategy, ScoredDoc, SparseIndex, SparseVector,
43    fuse_rankings,
44};
45pub use diskann::{
46    DiskIndex, DiskNode, IOStats, MedoidFinder, PageCache, VamanaConfig, VamanaGraph,
47};
48pub use compaction::{
49    BloomFilter, CompactionConfig, LSMIndex, LSMStats, MemTable, Segment,
50};