hermes_core/structures/
mod.rs

1//! Core data structures for indexing
2//!
3//! Organized into submodules:
4//! - `postings` - Posting list compression formats
5//! - `vector` - Vector indexing (RaBitQ, IVF-RaBitQ, ScaNN)
6//! - `simd` - SIMD utilities
7//! - `sstable` - SSTable for term dictionary
8
9pub mod postings;
10pub mod simd;
11mod sstable;
12pub mod vector;
13
14// Re-export postings
15pub use postings::{
16    BlockPostingIterator,
17    BlockPostingList,
18    // Sparse vector
19    BlockSparsePostingIterator,
20    BlockSparsePostingList,
21    // Posting common
22    COMMON_BLOCK_SIZE,
23    // Posting format
24    CompressedPostingIterator,
25    CompressedPostingList,
26    CompressionStats,
27    // Elias-Fano
28    EliasFano,
29    EliasFanoIterator,
30    EliasFanoPostingIterator,
31    EliasFanoPostingList,
32    // Horizontal BP128
33    HORIZONTAL_BP128_BLOCK_SIZE,
34    HorizontalBP128Block,
35    HorizontalBP128Iterator,
36    HorizontalBP128PostingList,
37    INLINE_THRESHOLD,
38    IndexOptimization,
39    IndexSize,
40    // OptP4D
41    OPT_P4D_BLOCK_SIZE,
42    OptP4DBlock,
43    OptP4DIterator,
44    OptP4DPostingList,
45    PARTITIONED_EF_THRESHOLD,
46    // Partitioned EF
47    PEF_BLOCK_SIZE,
48    PEFBlockInfo,
49    // Basic posting
50    POSTING_BLOCK_SIZE,
51    PartitionedEFPostingIterator,
52    PartitionedEFPostingList,
53    PartitionedEliasFano,
54    Posting,
55    PostingFormat,
56    PostingList,
57    PostingListIterator,
58    // Roaring
59    ROARING_BLOCK_SIZE,
60    ROARING_THRESHOLD_RATIO,
61    // Rounded BP128
62    ROUNDED_BP128_BLOCK_SIZE,
63    RoaringBitmap,
64    RoaringBlockInfo,
65    RoaringIterator,
66    RoaringPostingIterator,
67    RoaringPostingList,
68    RoundedBP128Block,
69    RoundedBP128Iterator,
70    RoundedBP128PostingList,
71    RoundedBitWidth,
72    SMALL_BLOCK_SIZE,
73    SMALL_BLOCK_THRESHOLD,
74    SPARSE_BLOCK_SIZE,
75    SkipEntry,
76    SkipList,
77    SparseEntry,
78    SparsePosting,
79    SparsePostingIterator,
80    SparsePostingList,
81    SparseSkipEntry,
82    SparseSkipList,
83    SparseVector,
84    SparseVectorConfig,
85    TERMINATED,
86    // Vertical BP128
87    VERTICAL_BP128_BLOCK_SIZE,
88    VerticalBP128Block,
89    VerticalBP128Iterator,
90    VerticalBP128PostingList,
91    WeightQuantization,
92    binary_search_block,
93    pack_block,
94    pack_deltas_fixed,
95    pack_vertical,
96    read_doc_id_block,
97    read_vint,
98    unpack_block,
99    unpack_block_n,
100    unpack_deltas_fixed,
101    unpack_vertical,
102    write_doc_id_block,
103    write_vint,
104};
105
106// Re-export vector
107pub use vector::{
108    // IVF core
109    ClusterData,
110    ClusterStorage,
111    CoarseCentroids,
112    CoarseConfig,
113    // Quantization
114    DistanceTable,
115    // Indexes
116    IVFPQConfig,
117    IVFPQIndex,
118    IVFRaBitQConfig,
119    IVFRaBitQIndex,
120    MultiAssignment,
121    PQCodebook,
122    PQConfig,
123    PQVector,
124    QuantizedCode,
125    QuantizedQuery,
126    QuantizedVector,
127    Quantizer,
128    RaBitQCodebook,
129    RaBitQConfig,
130    RaBitQIndex,
131    SoarConfig,
132};
133
134// Re-export simd
135pub use simd::bits_needed;
136
137// Re-export sstable
138pub use sstable::{
139    AsyncSSTableReader, BLOCK_SIZE as SSTABLE_BLOCK_SIZE, BloomFilter, SSTABLE_MAGIC, SSTableStats,
140    SSTableValue, SSTableWriter, SSTableWriterConfig, TermInfo,
141};