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)]
35 pub prevent_unoptimized: Option<bool>,
36}
37
38impl EdgeOptimizersConfig {
39 pub fn get_number_segments(&self) -> usize {
40 get_number_segments(self.default_segment_number.unwrap_or_default())
41 }
42
43 pub fn get_indexing_threshold_kb(&self) -> usize {
44 get_indexing_threshold_kb(self.indexing_threshold)
45 }
46
47 pub fn get_max_segment_size_kb(&self, num_indexing_threads: usize) -> usize {
48 get_max_segment_size_kb(self.max_segment_size, num_indexing_threads)
49 }
50}