milli_core/update/
indexer_config.rs

1use grenad::CompressionType;
2
3use super::GrenadParameters;
4use crate::thread_pool_no_abort::ThreadPoolNoAbort;
5
6#[derive(Debug)]
7pub struct IndexerConfig {
8    pub log_every_n: Option<usize>,
9    pub max_nb_chunks: Option<usize>,
10    pub documents_chunk_size: Option<usize>,
11    pub max_memory: Option<usize>,
12    pub chunk_compression_type: CompressionType,
13    pub chunk_compression_level: Option<u32>,
14    pub thread_pool: Option<ThreadPoolNoAbort>,
15    pub max_positions_per_attributes: Option<u32>,
16    pub skip_index_budget: bool,
17}
18
19impl IndexerConfig {
20    pub fn grenad_parameters(&self) -> GrenadParameters {
21        GrenadParameters {
22            chunk_compression_type: self.chunk_compression_type,
23            chunk_compression_level: self.chunk_compression_level,
24            max_memory: self.max_memory,
25            max_nb_chunks: self.max_nb_chunks,
26        }
27    }
28}
29
30impl Default for IndexerConfig {
31    fn default() -> Self {
32        Self {
33            log_every_n: None,
34            max_nb_chunks: None,
35            documents_chunk_size: None,
36            max_memory: None,
37            chunk_compression_type: CompressionType::None,
38            chunk_compression_level: None,
39            thread_pool: None,
40            max_positions_per_attributes: None,
41            skip_index_budget: false,
42        }
43    }
44}