feat(http): add analytics on typo tolerance setting

This commit is contained in:
ad hoc 2022-04-26 14:59:48 +02:00
parent 04381011b0
commit 3d10af0333
No known key found for this signature in database
GPG Key ID: 4F00A782990CC643
1 changed files with 84 additions and 1 deletions

View File

@ -165,7 +165,49 @@ make_setting_route!(
"/typo-tolerance",
meilisearch_lib::index::updates::TypoSettings,
typo_tolerance,
"typoTolerance"
"typoTolerance",
analytics,
|setting: &Option<meilisearch_lib::index::updates::TypoSettings>, req: &HttpRequest| {
use serde_json::json;
analytics.publish(
"TypoToleranceUpdated Updated".to_string(),
json!({
"typo_tolerance": {
"enabled": setting.as_ref().map(|s| !matches!(s.enabled, Setting::Set(false))).unwrap_or(true),
"disable_on_attributes": setting
.as_ref()
.map(|s| s.disable_on_attributes.as_ref().set().map(|m| !m.is_empty()))
.flatten()
.unwrap_or(false),
"disable_on_words": setting
.as_ref()
.map(|s| s.disable_on_words.as_ref().set().map(|m| !m.is_empty()))
.flatten()
.unwrap_or(false),
"min_word_size_for_one_typo": setting
.as_ref()
.map(|s| s.min_word_size_for_typos
.as_ref()
.set()
.map(|s| s.one_typo.set()))
.flatten()
.flatten()
.unwrap_or(5),
"min_word_size_for_two_typos": setting
.as_ref()
.map(|s| s.min_word_size_for_typos
.as_ref()
.set()
.map(|s| s.two_typos.set()))
.flatten()
.flatten()
.unwrap_or(9),
},
}),
Some(req),
);
}
);
make_setting_route!(
@ -283,6 +325,47 @@ pub async fn update_all(
"total": settings.filterable_attributes.as_ref().set().map(|filter| filter.len()).unwrap_or(0),
"has_geo": settings.filterable_attributes.as_ref().set().map(|filter| filter.iter().any(|s| s == "_geo")).unwrap_or(false),
},
"typo_tolerance": {
"enabled": settings.typo_tolerance
.as_ref()
.set()
.map(|s| s.enabled.as_ref().set())
.flatten()
.copied()
.unwrap_or(true),
"disable_on_attributes": settings.typo_tolerance
.as_ref()
.set()
.map(|s| s.disable_on_attributes.as_ref().set().map(|m| !m.is_empty()))
.flatten()
.unwrap_or(false),
"disable_on_words": settings.typo_tolerance
.as_ref()
.set()
.map(|s| s.disable_on_words.as_ref().set().map(|m| !m.is_empty()))
.flatten()
.unwrap_or(false),
"min_word_size_for_one_typo": settings.typo_tolerance
.as_ref()
.set()
.map(|s| s.min_word_size_for_typos
.as_ref()
.set()
.map(|s| s.one_typo.set()))
.flatten()
.flatten()
.unwrap_or(5),
"min_word_size_for_two_typos": settings.typo_tolerance
.as_ref()
.set()
.map(|s| s.min_word_size_for_typos
.as_ref()
.set()
.map(|s| s.two_typos.set()))
.flatten()
.flatten()
.unwrap_or(9),
},
}),
Some(&req),
);