mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-26 20:15:07 +08:00
Merge #3529
3529: Add an analytics on the geo bounding box feature r=ManyTheFish a=irevoire Fixes #3527 [The specification of the geoBoundingBox](https://github.com/meilisearch/specifications/pull/223) feature has been updated and now introduces a new analytics to follow the usage of the geoBoundingBox feature in the search requests. Co-authored-by: Tamo <tamo@meilisearch.com>
This commit is contained in:
commit
3d1046369c
@ -500,6 +500,7 @@ pub struct SearchAggregator {
|
|||||||
|
|
||||||
// filter
|
// filter
|
||||||
filter_with_geo_radius: bool,
|
filter_with_geo_radius: bool,
|
||||||
|
filter_with_geo_bounding_box: bool,
|
||||||
// every time a request has a filter, this field must be incremented by the number of terms it contains
|
// every time a request has a filter, this field must be incremented by the number of terms it contains
|
||||||
filter_sum_of_criteria_terms: usize,
|
filter_sum_of_criteria_terms: usize,
|
||||||
// every time a request has a filter, this field must be incremented by one
|
// every time a request has a filter, this field must be incremented by one
|
||||||
@ -567,6 +568,7 @@ impl SearchAggregator {
|
|||||||
|
|
||||||
let stringified_filters = filter.to_string();
|
let stringified_filters = filter.to_string();
|
||||||
ret.filter_with_geo_radius = stringified_filters.contains("_geoRadius(");
|
ret.filter_with_geo_radius = stringified_filters.contains("_geoRadius(");
|
||||||
|
ret.filter_with_geo_bounding_box = stringified_filters.contains("_geoBoundingBox(");
|
||||||
ret.filter_sum_of_criteria_terms = RE.split(&stringified_filters).count();
|
ret.filter_sum_of_criteria_terms = RE.split(&stringified_filters).count();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -626,6 +628,7 @@ impl SearchAggregator {
|
|||||||
|
|
||||||
// filter
|
// filter
|
||||||
self.filter_with_geo_radius |= other.filter_with_geo_radius;
|
self.filter_with_geo_radius |= other.filter_with_geo_radius;
|
||||||
|
self.filter_with_geo_bounding_box |= other.filter_with_geo_bounding_box;
|
||||||
self.filter_sum_of_criteria_terms =
|
self.filter_sum_of_criteria_terms =
|
||||||
self.filter_sum_of_criteria_terms.saturating_add(other.filter_sum_of_criteria_terms);
|
self.filter_sum_of_criteria_terms.saturating_add(other.filter_sum_of_criteria_terms);
|
||||||
self.filter_total_number_of_criteria = self
|
self.filter_total_number_of_criteria = self
|
||||||
@ -693,6 +696,7 @@ impl SearchAggregator {
|
|||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"with_geoRadius": self.filter_with_geo_radius,
|
"with_geoRadius": self.filter_with_geo_radius,
|
||||||
|
"with_geoBoundingBox": self.filter_with_geo_bounding_box,
|
||||||
"avg_criteria_number": format!("{:.2}", self.filter_sum_of_criteria_terms as f64 / self.filter_total_number_of_criteria as f64),
|
"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)),
|
"most_used_syntax": self.used_syntax.iter().max_by_key(|(_, v)| *v).map(|(k, _)| json!(k)).unwrap_or_else(|| json!(null)),
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user