hermes_core/segment/builder/
config.rs1use std::path::PathBuf;
4
5use crate::compression::CompressionLevel;
6
7#[derive(Debug, Clone, Default)]
9pub struct SegmentBuilderStats {
10 pub num_docs: u32,
12 pub unique_terms: usize,
14 pub postings_in_memory: usize,
16 pub interned_strings: usize,
18 pub doc_field_lengths_size: usize,
20 pub estimated_memory_bytes: usize,
22 pub memory_breakdown: MemoryBreakdown,
24}
25
26#[derive(Debug, Clone, Default)]
28pub struct MemoryBreakdown {
29 pub postings_bytes: usize,
31 pub index_overhead_bytes: usize,
33 pub interner_bytes: usize,
35 pub field_lengths_bytes: usize,
37 pub dense_vectors_bytes: usize,
39 pub dense_vector_count: usize,
41 pub sparse_vectors_bytes: usize,
43 pub position_index_bytes: usize,
45}
46
47#[derive(Clone)]
49pub struct SegmentBuilderConfig {
50 pub temp_dir: PathBuf,
52 pub compression_level: CompressionLevel,
54 pub num_compression_threads: usize,
56 pub interner_capacity: usize,
58 pub posting_map_capacity: usize,
60}
61
62impl Default for SegmentBuilderConfig {
63 fn default() -> Self {
64 Self {
65 #[cfg(feature = "native")]
66 temp_dir: std::env::temp_dir(),
67 #[cfg(not(feature = "native"))]
68 temp_dir: PathBuf::from("/tmp"),
69 compression_level: CompressionLevel(3),
70 #[cfg(feature = "native")]
71 num_compression_threads: crate::default_compression_threads(),
72 #[cfg(not(feature = "native"))]
73 num_compression_threads: 1,
74 interner_capacity: 1_000_000,
75 posting_map_capacity: 500_000,
76 }
77 }
78}