qdrant_edge/edge/config/
optimizers.rs1use serde::{Deserialize, Serialize};
4use crate::shard::optimizers::config::{
5 get_indexing_threshold_kb, get_max_segment_size_kb, get_number_segments,
6};
7
8#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
14#[serde(rename_all = "snake_case", default)]
15pub struct EdgeOptimizersConfig {
16 #[serde(default)]
18 pub deleted_threshold: Option<f64>,
19 #[serde(default)]
21 pub vacuum_min_vector_number: Option<usize>,
22 pub default_segment_number: Option<usize>,
24 #[serde(alias = "max_segment_size_kb")]
26 pub max_segment_size: Option<usize>,
27 #[serde(alias = "indexing_threshold_kb")]
29 pub indexing_threshold: Option<usize>,
30 #[serde(default)]
32 pub prevent_unoptimized: Option<bool>,
33}
34
35impl EdgeOptimizersConfig {
36 pub fn get_number_segments(&self) -> usize {
37 get_number_segments(self.default_segment_number.unwrap_or_default())
38 }
39
40 pub fn get_indexing_threshold_kb(&self) -> usize {
41 get_indexing_threshold_kb(self.indexing_threshold)
42 }
43
44 pub fn get_max_segment_size_kb(&self, num_indexing_threads: usize) -> usize {
45 get_max_segment_size_kb(self.max_segment_size, num_indexing_threads)
46 }
47}