1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Index Module
//!
//! Provides vector index implementations for approximate nearest neighbor search.
//!
//! # Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────┐
//! │ VectorIndex Trait │
//! ├─────────────────────────────────────────────┤
//! │ + add(&mut self, id, vector) │
//! │ + search(&self, query, k) -> Results │
//! │ + remove(&mut self, id) │
//! │ + len(&self) -> usize │
//! └─────────────────────────────────────────────┘
//! ▲ ▲ ▲
//! │ │ │
//! ┌──────┴──────┐ ┌────┴────┐ ┌───────┴───────┐
//! │ FlatIndex │ │HNSWIndex│ │ IVFIndex │
//! │ (exact) │ │(approx) │ │ (approx) │
//! └─────────────┘ └─────────┘ └───────────────┘
//! ```
//!
//! # Invariants
//!
//! - INV-004: Index-record consistency (every ID in index has valid record)
pub use FlatIndex;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;