Skip to main content

ipfrs_semantic/
lib.rs

1#![doc = include_str!("CRATE_DOCS.md")]
2
3pub mod adapters;
4pub mod analytics;
5pub mod auto_scaling;
6pub mod benchmark_comparison;
7pub mod cache;
8pub mod cross_encoder;
9pub mod dht;
10pub mod dht_node;
11pub mod diagnostics;
12pub mod diskann;
13pub mod drift_detector;
14pub mod dynamic;
15pub mod federated;
16pub mod hnsw;
17pub mod hybrid;
18pub mod kb_query;
19pub mod learned;
20pub mod metadata;
21pub mod migration;
22pub mod multimodal;
23pub mod optimization;
24pub mod persistence;
25pub mod privacy;
26pub mod prod_tests;
27pub mod provenance;
28pub mod query_cache;
29pub use query_cache::{CachedQueryResult, QueryCacheConfig, QueryCacheStats, SemanticQueryCache};
30pub mod query_planner;
31pub mod query_rewriter;
32pub use query_rewriter::{
33    QueryRewriter, QueryRewriterConfig, QueryRewriterStats, RewriteResult, RewriteRule,
34    RewriteRuleType, RewrittenTerm,
35};
36pub mod federated_search;
37pub mod index_compactor;
38pub mod index_merger;
39pub mod index_partitioner;
40pub mod index_rebalancer;
41pub mod partial_sync;
42pub mod quantization;
43pub mod regression;
44pub mod reranking;
45pub mod result_aggregator;
46pub mod router;
47pub mod shard_balancer;
48pub mod shard_coordinator;
49pub mod simd;
50pub mod solver;
51pub mod stats;
52pub mod utils;
53pub mod vector_quality;
54
55// Core vector index exports
56pub use hnsw::{
57    BuildHealthStats, DistanceMetric, IncrementalBuildStats, ParameterRecommendation,
58    ParameterTuner, RebuildStats, SearchResult, UseCase, VectorIndex,
59};
60
61// Router exports
62pub use router::{
63    BatchStats, CacheStats, IndexBackend, QueryFilter, RouterConfig, RouterStats, SemanticRouter,
64};
65
66// Hybrid search exports
67pub use hybrid::{
68    FilterStrategy, HybridConfig, HybridIndex, HybridQuery, HybridResponse, HybridResult,
69    PruningStats,
70};
71
72// Metadata exports
73pub use metadata::{Metadata, MetadataFilter, MetadataStore, MetadataValue, TemporalOptions};
74
75// Quantization exports
76pub use quantization::{
77    dequantize_i8_to_f32, quantize_f32_to_i8, BinaryVectorStore, OptimizedProductQuantizer, PQCode,
78    ProductQuantizer, QuantizationBenchmark, QuantizationBenchmarker, QuantizationComparison,
79    QuantizedVector, QuantizedVectorStore, ScalarQuantizer,
80};
81
82// Statistics exports
83pub use stats::{IndexHealth, IndexStats, MemoryUsage, PerfTimer, StatsSnapshot};
84
85// Result aggregator exports
86pub use result_aggregator::{
87    AggregatedResult, AggregationStrategy as AggAggregationStrategy, AggregatorConfig,
88    AggregatorStats, ResultAggregator, SearchResult as AggSearchResult,
89};
90
91// DiskANN exports
92pub use diskann::SearchResult as DiskANNSearchResult;
93pub use diskann::{CompactionStats, DiskANNConfig, DiskANNIndex, DiskANNStats};
94
95// Solver exports (Logic Integration)
96pub use solver::{
97    LogicSolver, PredicateEmbedder, ProofSearch, ProofTreeNode, SolverConfig, SolverStats,
98};
99
100// Knowledge Base Query exports
101pub use kb_query::{
102    BooleanQuery, FilterExpr, Query, QueryExecutor, QueryPattern, QueryResult, QueryStats,
103    TermPattern, TermType,
104};
105
106// Provenance exports
107pub use provenance::{
108    AuditLogEntry, AuditOperation, EmbeddingMetadata, EmbeddingSource, EmbeddingVersion,
109    FeatureAttribution, ProvenanceStats, ProvenanceTracker, SearchExplanation, VersionHistory,
110};
111
112// SIMD exports (Performance optimization)
113pub use simd::{cosine_distance, dot_product, l2_distance};
114
115// Cache exports (Advanced caching)
116pub use cache::{
117    AdaptiveCacheStrategy, AlignedVector, CacheInvalidator, HotCacheStats, HotEmbeddingCache,
118    InvalidationPolicy,
119};
120
121// Multi-modal exports (Multi-Modal Search)
122pub use multimodal::{
123    Modality, ModalityAlignment, ModalityStats, MultiModalConfig, MultiModalEmbedding,
124    MultiModalIndex,
125};
126
127// Privacy exports (Differential Privacy)
128pub use privacy::{
129    NoiseDistribution, PrivacyBudget, PrivacyBudgetStats, PrivacyMechanism, PrivateEmbedding,
130    QueryRecord, TradeoffAnalyzer, TradeoffPoint,
131};
132
133// Dynamic embedding exports (Dynamic Updates)
134pub use dynamic::{
135    DynamicIndex, EmbeddingTransform, ModelVersion, OnlineUpdater, OnlineUpdaterStats, VersionStats,
136};
137
138// Distributed DHT exports (Distributed Semantic Search)
139pub use dht::{
140    DHTQuery, DHTQueryResponse, ReplicationStrategy, SemanticDHTConfig, SemanticDHTStats,
141    SemanticPeer, SemanticRoutingTable,
142};
143pub use dht_node::{SemanticDHTNode, SyncStats};
144
145// Federated Query exports (Multi-Index Search)
146pub use federated::{
147    AggregationStrategy, FederatedConfig, FederatedQueryExecutor, FederatedQueryStats,
148    FederatedSearchResult, LocalIndexAdapter, QueryableIndex,
149};
150
151// Re-ranking exports (Query Result Re-ranking)
152pub use reranking::{ReRanker, ReRankingConfig, ReRankingStrategy, ScoreComponent, ScoredResult};
153
154// Analytics exports (Query Analytics and Performance Tracking)
155pub use analytics::{
156    AnalyticsSummary, AnalyticsTracker, DetectedPattern, QueryMetrics, QueryTimer,
157};
158
159// Auto-Scaling Advisor exports (Production Operations)
160pub use auto_scaling::{
161    ActionType, AdvisorConfig, AutoScalingAdvisor, ScalingAction, ScalingRecommendations,
162    TrendReport, WorkloadMetrics,
163};
164
165// Learned Index exports (ML-Based Indexing)
166pub use learned::{LearnedIndex, LearnedIndexStats, ModelType, RMIConfig};
167
168// Vector Database Adapter exports (External Integration)
169pub use adapters::{
170    BackendConfig, BackendMigration, BackendRegistry, BackendSearchResult, BackendStats,
171    IpfrsBackend, MigrationStats, VectorBackend,
172};
173
174// Vector Quality Analysis exports (Quality Validation and Anomaly Detection)
175pub use vector_quality::{
176    analyze_quality, compute_batch_stats, compute_diversity, compute_stats, cosine_similarity,
177    detect_anomaly, find_outliers, AnomalyReport, AnomalyType, VectorQuality, VectorStats,
178};
179
180// Diagnostics exports (Index Health Monitoring and Performance Profiling)
181pub use diagnostics::{
182    diagnose_index, DiagnosticIssue, DiagnosticReport, HealthMonitor, HealthStatus, IssueCategory,
183    IssueSeverity, PerformanceMetrics, ProfilerStats, SearchProfiler,
184};
185
186// Optimization exports (Index Optimization and Resource Management)
187pub use optimization::{
188    analyze_optimization, MemoryOptimizer, OptimizationGoal, OptimizationResult, QueryOptimizer,
189};
190
191// Utility exports (Helper Functions and Common Workflows)
192pub use utils::{
193    average_embedding, create_hybrid_index_from_map, health_check, index_with_quality_check,
194    normalize_vector, normalize_vectors, validate_embeddings, BatchEmbeddingStats,
195    BatchIndexResult, HealthCheckResult,
196};
197
198// Production Testing exports (Stress Testing and Endurance Testing)
199pub use prod_tests::{
200    EnduranceTest, EnduranceTestConfig, EnduranceTestResults, StressTest, StressTestConfig,
201    StressTestResults,
202};
203
204// Performance Regression Detection exports (Regression Testing)
205pub use regression::{
206    MetricSummary, RegressionConfig, RegressionDetector, RegressionIssue, RegressionReport,
207};
208
209// Benchmark Comparison exports (Configuration Comparison and Parameter Tuning)
210pub use benchmark_comparison::{
211    BenchmarkResult, BenchmarkSuite, ComparisonReport, IndexConfig, ParameterSweep,
212};
213
214// Index Migration exports (Index Type Migration and Configuration Updates)
215pub use migration::{
216    BatchMigration, ConfigMigration, DimensionMigration, IndexMigration, MetricMigration,
217    MigrationConfig, MigrationProgress,
218};
219
220// Shard balancer exports (HNSW-on-DHT shard balancing)
221pub use shard_balancer::{DhtShardRouter, ShardAssignment, ShardBalancer, ShardConfig};
222
223// Shard coordinator exports (consistent-hash vector distribution for 1M+ vectors)
224pub use shard_coordinator::{
225    ConsistentHashRing, ShardCoordinator, ShardError, ShardId, ShardStats, ShardStatsSnapshot,
226    VectorShard,
227};
228
229// Index Persistence exports (HNSW Snapshot Serialization + incremental snapshots)
230pub use persistence::{
231    IncrementalSnapshot, IncrementalTracker, IndexEntry, IndexPersistence, IndexSnapshot,
232};
233
234// Partial sync / dirty region tracking
235pub use partial_sync::{DirtyRegionTracker, EmbeddingDelta, EmbeddingRegion, PartialSyncManager};
236
237// Index Compactor exports (HNSW fragmentation detection and rebuild coordination)
238pub use index_compactor::{
239    CompactionPlan, CompactionPolicy, CompactionPriority, CompactionReason, CompactorStats,
240    CompactorStatsSnapshot, IndexCompactor, IndexFragmentStats,
241};
242
243// Federated Search Coordinator — cross-node vector similarity search
244pub use federated_search::{
245    CachedSearchResult, FederatedSearchCoordinator, FederatedSearchStats,
246    FederatedSearchStatsSnapshot, QueryKey, SearchPeer, SearchResult as PeerSearchResult,
247};
248
249pub mod embedding_normalizer;
250pub use embedding_normalizer::{
251    EmbeddingNormalizer, NormStats, NormalizationType, NormalizerConfig, NormalizerStats,
252};
253
254// Embedding Pipeline — preprocess raw content into normalised vectors
255pub mod embedding_pipeline;
256pub use embedding_pipeline::{
257    fnv1a_hash_f32, EmbeddingInput, EmbeddingPipeline, EmbeddingPipelineConfig,
258    NormalizationStrategy, PipelineError, PipelineResult, PipelineStage, PipelineStats,
259    PipelineStatsSnapshot, SemanticEmbeddingPipeline, SemanticPipelineStats,
260};
261
262pub mod quantization_error;
263pub use quantization_error::{QErrorError, QuantizationError, QuantizationErrorTracker};
264
265// Search Quality Evaluation — Recall@K, Precision@K, NDCG@K, AP, RR
266pub mod search_quality;
267pub use search_quality::{
268    EvalError, EvaluatorStats, EvaluatorStatsSnapshot, GroundTruth, QualityMetrics,
269    SearchQualityEvaluator, SearchResultSet,
270};
271
272pub mod search_explainer;
273pub use search_explainer::{
274    ExplainerConfig, ExplainerStats, ExplanationNode, QueryContext, ScoreContribution,
275    SearchExplainer,
276};
277
278// Vector Search Re-Ranker — multi-signal scoring (similarity, recency, tag overlap, peer reliability)
279pub mod search_ranker;
280pub use search_ranker::{
281    // SemanticSearchRanker and associated types
282    RankSignal,
283    RankedResult,
284    RankerConfig,
285    RankerStats,
286    RankingSignal,
287    RawCandidate,
288    SearchCandidate,
289    SemanticRankedResult,
290    SemanticRankerConfig,
291    SemanticSearchRanker,
292    VectorSearchRanker,
293};
294
295// Two-level LFU/TTL similarity score cache for k-NN searches
296pub mod similarity_cache;
297
298// Pairwise cosine-similarity cache with LFU eviction and tick-based TTL
299pub mod similarity_cache_v2;
300
301// Vector Anomaly Detector — z-score and isolation-score detection
302pub mod anomaly_detector;
303pub use anomaly_detector::{
304    AnomalyConfig, AnomalyDetectorStats, AnomalyMethod, AnomalyResult, DetectorConfig,
305    DetectorStats, SemanticAnomalyDetector, SemanticAnomalyMethod, SemanticAnomalyResult,
306    VectorAnomalyDetector,
307};
308
309// Embedding Drift Monitor — concept drift detection via normalised deviation
310pub mod drift_monitor;
311pub use drift_monitor::{
312    BaselineStats, DriftMonitorConfig, DriftMonitorStats, DriftSignal, EmbeddingDriftMonitor,
313};
314
315// Semantic Cluster Analyzer — k-means++ style cluster analysis over embedding vectors
316pub mod cluster_analyzer;
317pub use cluster_analyzer::{
318    AnalyzerConfig, Cluster, ClusterPoint, ClusterStats, SemanticClusterAnalyzer,
319};
320
321// Product Quantization for compressing high-dimensional vectors into compact codes
322pub mod vector_quantizer;
323
324// HNSW index structure analysis and parameter tuning recommendations
325pub mod index_optimizer;
326
327// Relevance feedback loop: signal collection and score boosting
328pub mod feedback_loop;
329
330// Multi-Modal Search Coordinator — cross-modality result fusion and deduplication
331pub mod multimodal_search;
332pub use multimodal_search::{
333    CoordinatorStats, FusedResult, FusionStrategy, Modality as SearchModality, ModalityResult,
334    MultiModalSearchCoordinator, SearchQuery,
335};
336pub use vector_quantizer::{
337    Codebook, QuantizationConfig, QuantizationStats, QuantizerCode, VectorQuantizer, VqError,
338};
339
340// Semantic Personalizer — per-user interest profile management and search result biasing
341pub mod personalizer;
342
343// Embedding Composer — late-fusion of multiple embeddings into a single representation
344pub mod embedding_composer;
345pub use personalizer::{
346    InteractionRecord, InteractionType, PersonalizationBias, SemanticPersonalizer, UserProfile,
347};
348
349// Semantic Tag Extractor — similarity-based tag assignment with TF-IDF-like scoring
350pub mod tag_extractor;
351pub use tag_extractor::{
352    ExtractionConfig, ExtractorStats, SemanticTagExtractor, Tag, TagAssignment,
353};
354
355// Semantic Graph Linker — builds a similarity graph over embeddings
356pub mod graph_linker;
357pub use graph_linker::{
358    EdgeType, GraphLinkerStats, GraphNode, LinkerConfig, SemanticEdge, SemanticGraphLinker,
359};
360
361// Semantic Content Router — routes queries to most relevant nodes/shards
362pub mod content_router;
363pub use content_router::{
364    RouteScore, RouterConfig as ContentRouterConfig, RouterStats as ContentRouterStats,
365    RoutingDecision, SemanticContentRouter, TopicEmbedding,
366};
367
368// Semantic Hotspot Detector — detects frequently queried regions in embedding space
369pub mod hotspot_detector;
370pub use hotspot_detector::{
371    cosine_sim as hotspot_cosine_sim, HotspotConfig, HotspotRegion, HotspotStats, QueryHit,
372    SemanticHotspotDetector,
373};
374
375// Semantic Query Expander — generates synonyms, paraphrases, and sub-queries to improve recall
376pub mod query_expander;
377pub use query_expander::{
378    ExpandedQuery, ExpanderStats, ExpansionStrategy, SemanticQueryExpander, TermEntry,
379    TermRelation, VectorExpandedQuery, VectorExpanderConfig, VectorExpanderStats,
380    VectorQueryExpander, VectorQueryExpansion,
381};
382
383// Semantic Near-Duplicate Detector — LSH-based sub-linear near-dup detection
384pub mod near_dup_detector;
385pub use near_dup_detector::{
386    cosine_sim as near_dup_cosine_sim, DupCandidate, DupDetectorStats, DuplicatePair, LshBand,
387    MinHashConfig, MinHashNearDupDetector, MinHashSignature, NearDupConfig, NearDupDetectorStats,
388    SemanticNearDupDetector,
389};
390
391// Semantic Concept Hierarchy — DAG-based concept ontology with IsA / RelatedTo / OppositeOf edges
392pub mod concept_hierarchy;
393pub use concept_hierarchy::{
394    ConceptEdge, ConceptNode, ConceptRelation, HierarchyStats, SemanticConceptHierarchy,
395};
396
397// Concept and Keyword Extraction — TF-IDF and frequency-based concept extraction
398pub mod concept_extractor;
399pub use concept_extractor::{
400    Concept, ConceptExtractor, ConceptType, ExtractorConfig as ConceptExtractorConfig,
401    ExtractorStats as ConceptExtractorStats,
402};
403
404// Semantic Topic Modeller — online clustering for latent topic modelling
405pub mod topic_modeler;
406pub use topic_modeler::{
407    cosine_sim as topic_cosine_sim,
408    // LDA-based TopicModeler
409    DocumentTopics,
410    LdaTopic,
411    ModelDocument,
412    ModellerConfig,
413    SemanticTopicModeller,
414    TopicAssignment,
415    TopicModel,
416    TopicModelConfig,
417    TopicModelError,
418    TopicModelResult,
419    TopicModeler,
420    TopicModelerStats,
421    TopicModellerStats,
422    TopicWord,
423};
424
425// Semantic Query Pipeline — composable multi-stage query processing
426pub mod query_pipeline;
427pub use query_pipeline::{
428    PipelineConfig, PipelineRun, PipelineStageKind, PipelineStats as QueryPipelineStats,
429    QueryResult as PipelineQueryResult, SemanticQueryPipeline, StageMetrics,
430};
431
432// Semantic Knowledge Graph — multi-hop semantic reasoning over entity/concept graphs
433pub mod knowledge_graph;
434pub use knowledge_graph::{
435    cosine_sim as knowledge_graph_cosine_sim, EntityKind, GraphEdge, GraphEntity, GraphQuery,
436    KnowledgeGraphStats, SemanticKnowledgeGraph,
437};
438
439pub mod entity_linker;
440pub use entity_linker::{
441    cosine_sim, KbEntity, LinkedMention, LinkerConfig as EntityLinkerConfig, LinkerStats,
442    MentionKind, SemanticEntityLinker,
443};
444
445pub mod entity_resolution;
446pub use entity_resolution::{
447    CanonicalEntity, EntityMention, EntityResolver, EntityType, ResolutionMethod, ResolutionResult,
448    ResolverConfig, ResolverStats,
449};
450
451pub mod relevance_feedback;
452pub use relevance_feedback::{
453    cosine_similarity as relevance_cosine_similarity, FeedbackItem, FeedbackLabel, FeedbackSession,
454    FeedbackStats, RocchioConfig, SemanticRelevanceFeedback,
455};
456
457// Semantic Diversifier — Maximal Marginal Relevance (MMR) result diversification
458pub mod diversifier;
459pub use diversifier::{
460    cosine_similarity as diversifier_cosine_similarity, DiversificationCandidate,
461    DiversifiedResult, DiversifierConfig, DiversifierStats, SemanticDiversifier,
462};
463
464// Semantic Synonym Expander — weighted synonym graph for vocabulary expansion in semantic search
465pub mod synonym_expander;
466pub use synonym_expander::{
467    ExpandedTerm, ExpanderConfig as SynonymExpanderConfig, SemanticSynonymExpander, SynonymEdge,
468    SynonymExpanderStats, SynonymRelation,
469};
470
471// Semantic Cluster Manager — online k-means-style document clustering with drift detection
472pub mod cluster_manager;
473pub use cluster_manager::{
474    euclidean_distance as cluster_euclidean_distance,
475    vec_mean as cluster_vec_mean,
476    BatchCluster,
477    // Batch k-means clustering
478    BatchClusterConfig,
479    BatchClusterManagerStats,
480    BatchSemanticClusterManager,
481    ClusterAssignment,
482    ClusterManagerConfig,
483    ClusterManagerStats,
484    SemanticCluster,
485    SemanticClusterManager,
486};
487
488pub mod document_summarizer;
489pub use document_summarizer::{
490    cosine_similarity as ds_cosine_similarity,
491    split_sentences as ds_split_sentences,
492    tf_idf as ds_tf_idf,
493    tokenize as ds_tokenize,
494    xorshift64 as ds_xorshift64,
495    DocumentChunk,
496    DocumentSummarizer,
497    // Renamed to avoid collision with text_summarizer::{SentenceScore, SummarizerConfig, SummarizerError}
498    SentenceScore as DsSentenceScore,
499    SummarizerConfig as DsSummarizerConfig,
500    SummarizerError as DsSummarizerError,
501    SummarizerStats,
502    SummaryResult,
503    SummaryStyle,
504};
505
506pub mod intent_classifier;
507pub use intent_classifier::{
508    ClassifierConfig as IntentClassifierConfig, ClassifierStats as IntentClassifierStats,
509    IntentClassification, IntentKind, IntentPrototype, SemanticIntentClassifier,
510};
511
512// Semantic Context Window — sliding window of recent interactions for session-aware personalization
513pub mod context_window;
514pub use context_window::{ContextEntry, ContextStats, SemanticContextWindow, WindowConfig};
515
516// Semantic Multilingual Index — language-organised embedding index for cross-lingual search
517pub mod multilingual_index;
518pub use multilingual_index::{
519    CrossLingualQuery, Language, MultilingualDoc, MultilingualIndexStats, MultilingualResult,
520    SemanticMultilingualIndex,
521};
522
523// Semantic Attribution Tracker — attribution chains for explainability and audit
524pub mod attribution_tracker;
525pub use attribution_tracker::{
526    AttributionRecord, AttributionSource, AttributionStats, SemanticAttributionTracker,
527};
528
529pub mod embedding_pool;
530pub use embedding_pool::{EmbeddingBuffer, PoolConfig, PoolStats, SemanticEmbeddingPool};
531
532// Semantic Document Graph — graph structure for document relationships based on semantic similarity
533pub mod document_graph;
534pub use document_graph::{
535    cosine_sim as doc_graph_cosine_sim, DocGraphEdge, DocGraphNode, DocumentGraphStats,
536    EdgeKind as DocEdgeKind, SemanticDocumentGraph,
537};
538
539// Multi-factor document ranking combining BM25 lexical scoring with semantic similarity
540pub mod document_ranker;
541pub use document_ranker::{
542    DocumentIndex,
543    DocumentRanker,
544    RankedDocument,
545    // RankerStats collides with search_ranker::RankerStats — alias for disambiguation
546    RankerStats as DrRankerStats,
547    RankingConfig,
548};
549
550// Semantic Vocabulary Index — token-to-ID mapping with frequency / TF-IDF tracking
551pub mod vocab_index;
552pub use vocab_index::{SemanticVocabIndex, VocabConfig, VocabEntry, VocabIndexStats};
553
554// Semantic Summary Extractor — extractive summarization via embedding similarity
555pub mod summary_extractor;
556pub use summary_extractor::{
557    ExtractionResult, ExtractorScoredSentence, ExtractorSummaryConfig, SemanticSummaryExtractor,
558    SummaryExtractorStats,
559};
560
561// Semantic Term Weighter — TF-IDF and BM25 term weighting for semantic search
562pub mod term_weighter;
563pub use term_weighter::{
564    DocumentProfile, SemanticTermWeighter, TermWeight, TermWeighterStats, WeighterConfig,
565    WeightingScheme,
566};
567
568// Semantic Dimension Reducer — dimensionality reduction for embeddings
569pub mod dimension_reducer;
570pub use dimension_reducer::{
571    ReducerConfig, ReducerStats, ReductionMethod, ReductionResult, SemanticDimensionReducer,
572};
573
574// Semantic Tokenizer — text tokenization for semantic search indexing
575pub mod tokenizer;
576pub use tokenizer::{
577    SemanticTokenizer, Token as SemanticToken, TokenizerConfig, TokenizerMode, TokenizerStats,
578};
579
580pub use feedback_loop::{FeedbackEntry, FeedbackLoopStats, FeedbackType, QueryFeedbackSummary};
581
582pub mod embedding_cache;
583pub use embedding_cache::{
584    CachedEmbedding, EmbeddingCacheConfig, EmbeddingCacheStats, SemanticEmbeddingCache,
585};
586
587pub use cross_encoder::{
588    CandidateDoc, CrossEncoder, CrossEncoderConfig, CrossEncoderStats, RerankedDoc, ScoringModel,
589};
590
591// Multi-algorithm semantic vector clustering engine
592pub mod semantic_clusterer;
593pub use semantic_clusterer::{
594    ClusterAlgorithm, ClusterError, Linkage, ScCluster, ScClusterPoint, ScClustererStats,
595    ScClusteringResult, SemanticClusterer,
596};
597
598// Lexicon-based sentiment analysis engine with aspect-level detection
599pub mod sentiment_analyzer;
600pub use sentiment_analyzer::{
601    AspectSentiment, LexiconEntry, SentimentAnalyzer, SentimentAnalyzerStats, SentimentConfig,
602    SentimentPolarity, SentimentResult, SentimentScore,
603};
604
605// TF-IDF + TextRank extractive text summarization engine
606pub mod text_summarizer;
607pub use text_summarizer::{
608    SentenceScore,
609    SummarizationMethod,
610    SummarizerConfig,
611    SummarizerError,
612    TextSummarizer,
613    TextSummarizerStats as TsSummarizerStats,
614    // Renamed to avoid collision with document_summarizer::{SummaryResult, SummarizerStats}
615    TextSummaryResult as TsSummaryResult,
616};
617
618// End-to-end semantic search pipeline (vector + BM25 + fusion + re-ranking)
619pub mod search_pipeline;
620pub use search_pipeline::{
621    FusionMethod,
622    SearchDocument,
623    SearchHit,
624    SearchPipelineResult,
625    SemanticSearchPipeline,
626    // Renamed to avoid collision with query_pipeline::PipelineConfig
627    SpPipelineConfig,
628    // Renamed to avoid collision with embedding_pipeline::PipelineStats
629    SpPipelineStats,
630    // Renamed to avoid collision with multimodal_search::SearchQuery
631    SpSearchQuery,
632};
633
634// Knowledge Base Builder — incremental semantic knowledge base with entities, relations, and concept graphs
635pub mod knowledge_base_builder;
636pub use knowledge_base_builder::{
637    // KbBuilderEntity instead of KbEntity to avoid collision with entity_linker::KbEntity
638    KbBuilderEntity,
639    // KbConceptNode instead of ConceptNode to avoid collision with concept_hierarchy::ConceptNode
640    KbConceptNode,
641    KbDocument,
642    KbError,
643    KbRelation as KbBuilderRelation,
644    KbStats as KbBuilderStats,
645    KbTriple,
646    KnowledgeBaseBuilder,
647};
648
649// Multilingual Normalizer — Unicode normalization, script detection, and script-aware tokenization
650pub mod multilingual_normalizer;
651pub use multilingual_normalizer::{
652    LanguageHint, MultilingualNormalizer, NormalizationOptions, NormalizedText,
653    NormalizerStats as MlnNormalizerStats, Script, TokenizationStrategy,
654};
655
656// Inverted index corpus indexer with BM25 scoring and faceted filtering
657pub mod corpus_indexer;
658pub use corpus_indexer::{
659    CorpusIndexer,
660    FacetFilter,
661    IndexError,
662    IndexQuery,
663    // IndexStats aliased to avoid collision with stats::IndexStats
664    IndexStats as CiIndexStats,
665    IndexedDocument,
666    InvertedIndex,
667    PostingEntry,
668    // SearchResult aliased to avoid collision with hnsw::SearchResult
669    SearchResult as CiSearchResult,
670};
671
672// Embedding Pipeline Manager — multi-stage text-to-vector transformation engine
673pub mod embedding_pipeline_manager;
674pub use embedding_pipeline_manager::{
675    l2_normalize as epm_l2_normalize, mean_pool as epm_mean_pool,
676    random_projection as epm_random_projection, EmbeddingBatch, EmbeddingPipelineManager,
677    EpmPipelineConfig, EpmPipelineError, EpmPipelineStage, EpmPipelineStats, EpmReductionMethod,
678    StageTiming,
679};
680
681pub mod semantic_versioning;
682pub use semantic_versioning::{
683    BumpType, ChangeRecord, ChangeType, CompatibilityLevel, CompatibilityMatrix, SemVer,
684    SemVerError, SemanticVersioningEngine, VersionedArtifact, VersioningStats,
685};
686
687pub mod similarity_graph;
688pub use similarity_graph::{
689    GraphConfig, SemanticSimilarityGraph, SgCommunity, SgEdge, SgNode, SgStats,
690};
691
692pub mod embedding_aggregator;
693pub use embedding_aggregator::{
694    AggregationInput, AggregationMethod, AggregationResult as EaAggregationResult, AggregatorError,
695    EaAggregatorStats, EmbeddingAggregator, EmbeddingAggregatorConfig,
696};
697
698// Semantic reranker (cross-encoder-style query-document pair scoring)
699pub mod semantic_reranker;
700pub use semantic_reranker::{
701    RerankCandidate, RerankConfig, RerankFeature, RerankQuery, RerankResult, RerankStats,
702    SemanticReranker,
703};
704
705// Multimodal index (cross-modal unified index with fusion strategies)
706// Document Chunker — splits text into semantically coherent chunks for embedding and retrieval
707pub mod document_chunker;
708pub use document_chunker::{
709    ChunkStats, ChunkStrategy, DocumentChunker, DocumentChunkerConfig, TextChunk,
710};
711
712pub mod multimodal_index;
713pub use multimodal_index::{
714    CrossModalQuery, CrossModalResult, FusionStrategy as MmiFusionStrategy, MmiError, MmiStats,
715    Modality as MmiModality, ModalityEmbedding, MultiModalDocument,
716    MultiModalIndex as MmiMultiModalIndex, MultiModalIndexConfig,
717};
718
719// Vector-similarity-based semantic cache (avoids redundant computation for close queries)
720pub mod semantic_cache;
721pub use semantic_cache::{
722    CacheConfig, CacheEntry, CacheEvictionPolicy, CacheKey, CacheLookupResult, ScCacheStats,
723    SemanticCacheLayer,
724};
725
726// Query expansion engine — enriches queries with synonyms, hypernyms, hyponyms,
727// and contextual terms to improve search recall.
728pub mod query_expansion;
729pub use query_expansion::{
730    ExpansionConfig, ExpansionSource, ExpansionStats, QeExpandedQuery, QeExpansionTerm,
731    QueryExpansionEngine, SynonymEntry,
732};
733
734pub mod embedding_finetuner;
735pub use embedding_finetuner::{
736    cosine_similarity as ef_cosine_similarity, l2_distance_sq as ef_l2_distance_sq,
737    EmbeddingFinetuner, FinetunerConfig, FinetunerError, ProjectionLayer, TrainingPair,
738    TrainingStats, TripletLoss,
739};
740
741// Dense retriever — hybrid exact cosine + BM25 sparse retrieval with min-max score fusion
742pub mod dense_retriever;
743pub use dense_retriever::{
744    BM25Index, DenseRetriever, Document as RetrieverDocument, RetrievalQuery, RetrievalResult,
745    RetrieverConfig, RetrieverError, RetrieverStats,
746};
747
748// Concept Graph Builder — semantic concept graph with weighted edges, BFS path finding,
749// co-occurrence mining, and embedding-based similarity search.
750pub mod concept_graph;
751pub use concept_graph::{
752    canonize_key_test as cg_canonize_key_test,
753    cosine_similarity as cg_cosine_similarity,
754    tokenize as cg_tokenize,
755    // Aliased to avoid collision with concept_extractor::Concept
756    CgConcept,
757    // Aliased to avoid collision with concept_hierarchy::ConceptEdge
758    CgConceptEdge,
759    // Aliased to avoid collision with concept_hierarchy::ConceptRelation
760    CgConceptRelation,
761    // Aliased to avoid collision with similarity_graph::GraphConfig
762    CgGraphConfig,
763    ConceptGraphBuilder,
764    ConceptGraphStats,
765    ConceptId,
766};
767
768// SemanticRouterV2 — advanced semantic routing with fallback chains and analytics
769pub mod semantic_router_v2;
770pub use semantic_router_v2::{
771    FallbackStrategy, RouteDefinition, RouteHandlerId, RouteStats as Srv2RouteStats,
772    RouterV2Config, RouterV2Error, RouterV2Stats, SemanticRouterV2, V2RoutingDecision,
773};
774
775pub mod text_similarity_scorer;
776pub use text_similarity_scorer::{
777    ScorerConfig, SimilarityMetric, SimilarityScore, TextPair, TextSimilarityResult,
778    TextSimilarityScorer,
779};
780
781// Embedding Cluster Analyzer — comprehensive cluster analysis for embedding spaces
782pub mod embedding_cluster_analyzer;
783pub use embedding_cluster_analyzer::{
784    ClusterDescriptor, ClusterId, ClusterQuality, EcaAnalyzerConfig, EcaAnalyzerStats,
785    EcaClusterPoint, EmbeddingClusterAnalyzer, OutlierReason, OutlierScore,
786};
787
788// Semantic Federated Search Coordinator — cross-node result merging with quorum and re-ranking
789pub mod semantic_federated_search;
790pub use semantic_federated_search::{
791    FederatedQuery, FederatedResult, FederatedStats, MergeStrategy, NodeResponse, RemoteNode,
792    RemoteResult, SemanticFederatedSearch,
793};
794
795// Topic Model Extractor — collapsed Gibbs sampling LDA
796pub mod topic_model_extractor;
797pub use topic_model_extractor::{
798    ExtractorConfig, ExtractorDocumentTopics, ExtractorError, ExtractorTopic, ExtractorTopicWord,
799    ModelStats as TopicModelStats, TmeDocumentTopics, TmeError, TmeTopic, TmeTopicWord,
800    TopicModelExtractor,
801};
802
803// Cross-Modal Reranker — fuses BM25 text and dense vector signals for unified reranking
804pub mod cross_modal_reranker;
805pub use cross_modal_reranker::{
806    CmrFusionStrategy, CrossModalReranker, ModalityScore, RerankerCandidate, RerankerConfig,
807    RerankerError, RerankerStats, TextFeatures, VectorFeatures,
808};
809
810pub mod semantic_graph_builder;
811pub use semantic_graph_builder::{
812    BuilderConfig, BuilderError, EdgeRelation, GraphStats, NodeType, SemanticGraphBuilder,
813    SgbGraphEdge, SgbGraphNode, SgbGraphQuery,
814};
815
816// Embedding Drift Detector — statistical concept drift detection in embedding spaces
817pub mod embedding_drift_detector;
818pub use embedding_drift_detector::{
819    DetectionMethod,
820    // DetectorConfig aliases to avoid collision with anomaly_detector::DetectorConfig
821    DetectorConfig as EddDetectorConfig,
822    DetectorError,
823    // DriftSignal aliases to avoid collision with drift_monitor::DriftSignal
824    DriftSignal as EddDriftSignal,
825    DriftSnapshot,
826    DriftStats as EddDriftStats,
827    DriftType,
828    EmbeddingDriftDetector as EddEmbeddingDriftDetector,
829};
830/// Type alias: `EddDriftSignal` is the production drift signal from [`embedding_drift_detector`].
831pub type EddDriftSignalAlias = EddDriftSignal;
832/// Type alias: `EddDetectorConfig` is the config for [`EddEmbeddingDriftDetector`].
833pub type EddDetectorConfigAlias = EddDetectorConfig;
834
835// Multi-Modal Indexer — unified index for text, vector, and structured data
836pub mod multi_modal_indexer;
837pub use multi_modal_indexer::{
838    cosine_similarity as mmi_cosine_similarity, IndexedDocument as MmiIndexedDocument,
839    MmiIndexConfig, MmiIndexConfigAlias, MmiIndexError, MmiIndexErrorAlias, MmiIndexStats,
840    MmiIndexStatsAlias, MmiSearchQuery, MmiSearchQueryAlias, MmiSearchResult, MmiSearchResultAlias,
841    ModalityData, MultiModalIndexer,
842};
843
844// Contextual Embedding Search — context-aware vector search with query expansion,
845// negative suppression, and diversity-aware re-ranking.
846pub mod contextual_embedding_search;
847pub use contextual_embedding_search::{
848    cosine_similarity as ces_cosine_similarity, weighted_sum as ces_weighted_sum, CesExpandedQuery,
849    ContextualEmbeddingSearch, ContextualResult, DiversityStrategy,
850    SearchConfig as CesSearchConfig, SearchContext, SearchDoc, SearchError as CesSearchError,
851    SearchStats as CesSearchStats,
852};
853
854// Semantic Cache Manager — similarity-aware cache with multiple eviction strategies.
855pub mod semantic_cache_manager;
856pub use semantic_cache_manager::{
857    ScmCacheConfig, ScmCacheEntry, ScmCacheError, ScmCacheHit, ScmCacheKey, ScmCacheStats,
858    ScmEntryAlias, ScmErrorAlias, ScmEvictionStrategy, ScmHitAlias, ScmKeyAlias, ScmStatsAlias,
859    SemanticCacheManager,
860};
861
862pub mod semantic_query_optimizer;
863pub use semantic_query_optimizer::{
864    ExecutionStep, FilterOp as SqoFilterOp, IndexHints, JoinType, OptimizationRule,
865    OptimizerConfig, OptimizerError, OptimizerStats, QueryNode as SqoQueryNode,
866    QueryPlan as SqoQueryPlan, SemanticQueryOptimizer, StepType,
867};
868
869// Vector Index Optimizer — workload-driven index structure selection and maintenance
870pub mod vector_index_optimizer;
871pub use vector_index_optimizer::{
872    IndexRecommendation, IndexStats as VioIndexStats, IndexStructure, MaintenanceAction,
873    OptimizationCriterion, OptimizerConfig as VioOptimizerConfig,
874    OptimizerError as VioOptimizerError, OptimizerStats as VioOptimizerStats, VectorIndexOptimizer,
875    WorkloadProfile,
876};
877
878// Semantic Anomaly Detector — production-grade anomaly detection for embedding corpora
879// using CentroidDistance, MahalanobisApprox, LOF, IsolationForest, and EnsembleVote
880pub mod semantic_anomaly_detector;
881pub use semantic_anomaly_detector::{
882    cosine_similarity as sad_cosine_similarity,
883    AnomalyRecord as SadAnomalyRecord,
884    ReferencePoint as SadReferencePoint,
885    SadAnomalyScore,
886    SadDetectionMethod,
887    SadDetectorConfig,
888    SadDetectorStats,
889    SadDriftReport,
890    // SemanticAnomalyDetector collides with anomaly_detector::SemanticAnomalyDetector → alias
891    SemanticAnomalyDetector as SadSemanticAnomalyDetector,
892};
893
894pub mod hierarchical_topic_model;
895pub use hierarchical_topic_model::{
896    HierarchicalTopicModel, HtmDocument, HtmModelConfig, HtmModelStats, HtmTopic, HtmTopicNode,
897};
898
899pub mod multilingual_embedding_aligner;
900pub use multilingual_embedding_aligner::{
901    MeaAlignerConfig, MeaAlignerStats, MeaAlignmentMatrix, MeaAlignmentMethod, MeaLanguageSpace,
902    MultilingualEmbeddingAligner,
903};
904
905// Embedding Compression Codec — multi-method lossy/lossless codec for dense embedding vectors
906pub mod embedding_compression_codec;
907pub use embedding_compression_codec::{
908    EccCodecConfig, EccCodecStats, EccCompressed, EccError, EccMethod, EmbeddingCompressionCodec,
909};
910
911// Semantic Cluster Labeler — automatic human-readable label assignment for embedding clusters
912pub mod semantic_cluster_labeler;
913pub use semantic_cluster_labeler::{
914    SclCluster, SclError, SclLabelCandidate, SclLabelerConfig, SclLabelerStats, SclLabelingMethod,
915    SemanticClusterLabeler,
916};
917
918// Semantic Versioning Tracker — detects semantic drift in embedding spaces across model versions
919pub mod semantic_versioning_tracker;
920pub use semantic_versioning_tracker::{
921    SemanticVersioningTracker, SvtDriftEvent, SvtDriftReport, SvtError,
922    SvtSemanticVersioningTracker, SvtTrackerConfig, SvtTrackerStats, SvtVersion, SvtVersionId,
923};
924
925// Semantic Search Pipeline — full-stack pipeline with preprocessing, retrieval, and postprocessing
926pub mod semantic_search_pipeline;
927pub use semantic_search_pipeline::{
928    SemanticSearchPipeline as SspSemanticSearchPipelineExport, SspDocId, SspDocument,
929    SspPipelineConfig, SspPipelineStats, SspQueryRecord, SspRerankMethod, SspSearchResult,
930    SspSemanticSearchPipeline, SspStage,
931};