From c30a14cb977c22e3fa8e02764fbde934e439668b Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Mon, 10 Jul 2023 13:12:12 +0200 Subject: [PATCH 1/3] Add telemetry --- meilisearch/src/analytics/segment_analytics.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/meilisearch/src/analytics/segment_analytics.rs b/meilisearch/src/analytics/segment_analytics.rs index 30796dc88..85f9e543a 100644 --- a/meilisearch/src/analytics/segment_analytics.rs +++ b/meilisearch/src/analytics/segment_analytics.rs @@ -574,6 +574,10 @@ pub struct SearchAggregator { filter_total_number_of_criteria: usize, used_syntax: HashMap, + // attributes_to_search_on + // every time a search is done using attributes_to_search_on + attributes_to_search_on_total_number_of_use: usize, + // q // The maximum number of terms in a q request max_terms_number: usize, @@ -647,6 +651,11 @@ impl SearchAggregator { ret.filter_sum_of_criteria_terms = RE.split(&stringified_filters).count(); } + // attributes_to_search_on + if let Some(_) = query.attributes_to_search_on { + ret.attributes_to_search_on_total_number_of_use = 1; + } + if let Some(ref q) = query.q { ret.max_terms_number = q.split_whitespace().count(); } @@ -720,6 +729,11 @@ impl SearchAggregator { let used_syntax = self.used_syntax.entry(key).or_insert(0); *used_syntax = used_syntax.saturating_add(value); } + + // attributes_to_search_on + self.attributes_to_search_on_total_number_of_use += + other.attributes_to_search_on_total_number_of_use; + // q self.max_terms_number = self.max_terms_number.max(other.max_terms_number); @@ -786,6 +800,9 @@ impl SearchAggregator { "avg_criteria_number": format!("{:.2}", self.filter_sum_of_criteria_terms as f64 / self.filter_total_number_of_criteria as f64), "most_used_syntax": self.used_syntax.iter().max_by_key(|(_, v)| *v).map(|(k, _)| json!(k)).unwrap_or_else(|| json!(null)), }, + "attributes_to_search_on": { + "total_number_of_use": self.attributes_to_search_on_total_number_of_use, + }, "q": { "max_terms_number": self.max_terms_number, }, From 13e3f8faae4a36b5413567ed11e511bb414fde89 Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Thu, 13 Jul 2023 11:34:50 +0200 Subject: [PATCH 2/3] Fix typo --- meilisearch/src/analytics/segment_analytics.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meilisearch/src/analytics/segment_analytics.rs b/meilisearch/src/analytics/segment_analytics.rs index 85f9e543a..17ccc22be 100644 --- a/meilisearch/src/analytics/segment_analytics.rs +++ b/meilisearch/src/analytics/segment_analytics.rs @@ -576,7 +576,7 @@ pub struct SearchAggregator { // attributes_to_search_on // every time a search is done using attributes_to_search_on - attributes_to_search_on_total_number_of_use: usize, + attributes_to_search_on_total_number_of_uses: usize, // q // The maximum number of terms in a q request @@ -653,7 +653,7 @@ impl SearchAggregator { // attributes_to_search_on if let Some(_) = query.attributes_to_search_on { - ret.attributes_to_search_on_total_number_of_use = 1; + ret.attributes_to_search_on_total_number_of_uses = 1; } if let Some(ref q) = query.q { @@ -731,8 +731,8 @@ impl SearchAggregator { } // attributes_to_search_on - self.attributes_to_search_on_total_number_of_use += - other.attributes_to_search_on_total_number_of_use; + self.attributes_to_search_on_total_number_of_uses += + other.attributes_to_search_on_total_number_of_uses; // q self.max_terms_number = self.max_terms_number.max(other.max_terms_number); @@ -801,7 +801,7 @@ impl SearchAggregator { "most_used_syntax": self.used_syntax.iter().max_by_key(|(_, v)| *v).map(|(k, _)| json!(k)).unwrap_or_else(|| json!(null)), }, "attributes_to_search_on": { - "total_number_of_use": self.attributes_to_search_on_total_number_of_use, + "total_number_of_uses": self.attributes_to_search_on_total_number_of_uses, }, "q": { "max_terms_number": self.max_terms_number, From 359b90288d5b755cc6e14217aef18a6bf48daed8 Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Thu, 13 Jul 2023 11:36:03 +0200 Subject: [PATCH 3/3] Use saturating add --- meilisearch/src/analytics/segment_analytics.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meilisearch/src/analytics/segment_analytics.rs b/meilisearch/src/analytics/segment_analytics.rs index 17ccc22be..eca6f90d8 100644 --- a/meilisearch/src/analytics/segment_analytics.rs +++ b/meilisearch/src/analytics/segment_analytics.rs @@ -731,8 +731,9 @@ impl SearchAggregator { } // attributes_to_search_on - self.attributes_to_search_on_total_number_of_uses += - other.attributes_to_search_on_total_number_of_uses; + self.attributes_to_search_on_total_number_of_uses = self + .attributes_to_search_on_total_number_of_uses + .saturating_add(other.attributes_to_search_on_total_number_of_uses); // q self.max_terms_number = self.max_terms_number.max(other.max_terms_number);