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    QueryWeighting,
59    // Roaring
60    ROARING_BLOCK_SIZE,
61    ROARING_THRESHOLD_RATIO,
62    // Rounded BP128
63    ROUNDED_BP128_BLOCK_SIZE,
64    RoaringBitmap,
65    RoaringBlockInfo,
66    RoaringIterator,
67    RoaringPostingIterator,
68    RoaringPostingList,
69    RoundedBP128Block,
70    RoundedBP128Iterator,
71    RoundedBP128PostingList,
72    RoundedBitWidth,
73    SMALL_BLOCK_SIZE,
74    SMALL_BLOCK_THRESHOLD,
75    SPARSE_BLOCK_SIZE,
76    SkipEntry,
77    SkipList,
78    SparseEntry,
79    SparsePosting,
80    SparsePostingIterator,
81    SparsePostingList,
82    SparseQueryConfig,
83    SparseSkipEntry,
84    SparseSkipList,
85    SparseVector,
86    SparseVectorConfig,
87    TERMINATED,
88    // Vertical BP128
89    VERTICAL_BP128_BLOCK_SIZE,
90    VerticalBP128Block,
91    VerticalBP128Iterator,
92    VerticalBP128PostingList,
93    WeightQuantization,
94    binary_search_block,
95    pack_block,
96    pack_deltas_fixed,
97    pack_vertical,
98    read_doc_id_block,
99    read_vint,
100    unpack_block,
101    unpack_block_n,
102    unpack_deltas_fixed,
103    unpack_vertical,
104    write_doc_id_block,
105    write_vint,
106};
107
108// Re-export vector
109pub use vector::{
110    // IVF core
111    ClusterData,
112    ClusterStorage,
113    CoarseCentroids,
114    CoarseConfig,
115    // Quantization
116    DistanceTable,
117    // Indexes
118    IVFPQConfig,
119    IVFPQIndex,
120    IVFRaBitQConfig,
121    IVFRaBitQIndex,
122    MultiAssignment,
123    PQCodebook,
124    PQConfig,
125    PQVector,
126    QuantizedCode,
127    QuantizedQuery,
128    QuantizedVector,
129    Quantizer,
130    RaBitQCodebook,
131    RaBitQConfig,
132    RaBitQIndex,
133    SoarConfig,
134};
135
136// Re-export simd
137pub use simd::bits_needed;
138
139// Re-export sstable
140pub use sstable::{
141    AsyncSSTableIterator, AsyncSSTableReader, BLOCK_SIZE as SSTABLE_BLOCK_SIZE, BloomFilter,
142    SSTABLE_MAGIC, SSTableStats, SSTableValue, SSTableWriter, SSTableWriterConfig, TermInfo,
143};