This commit is contained in:
ManyTheFish 2025-04-01 16:12:41 +02:00
parent d2ef1cb425
commit ed826a8c8b
3 changed files with 24 additions and 9 deletions

View File

@ -706,6 +706,12 @@ pub fn apply_settings_to_builder(
Setting::Reset => builder.reset_exact_attributes(), Setting::Reset => builder.reset_exact_attributes(),
Setting::NotSet => (), Setting::NotSet => (),
} }
match value.disable_on_numbers {
Setting::Set(val) => builder.set_disable_on_numbers(val),
Setting::Reset => builder.reset_disable_on_numbers(),
Setting::NotSet => (),
}
} }
Setting::Reset => { Setting::Reset => {
// all typo settings need to be reset here. // all typo settings need to be reset here.

View File

@ -170,7 +170,7 @@ pub struct Settings<'a, 't, 'i> {
synonyms: Setting<BTreeMap<String, Vec<String>>>, synonyms: Setting<BTreeMap<String, Vec<String>>>,
primary_key: Setting<String>, primary_key: Setting<String>,
authorize_typos: Setting<bool>, authorize_typos: Setting<bool>,
disabled_typos_terms: Setting<DisabledTyposTerms>, disable_on_numbers: Setting<bool>,
min_word_len_two_typos: Setting<u8>, min_word_len_two_typos: Setting<u8>,
min_word_len_one_typo: Setting<u8>, min_word_len_one_typo: Setting<u8>,
exact_words: Setting<BTreeSet<String>>, exact_words: Setting<BTreeSet<String>>,
@ -209,7 +209,7 @@ impl<'a, 't, 'i> Settings<'a, 't, 'i> {
synonyms: Setting::NotSet, synonyms: Setting::NotSet,
primary_key: Setting::NotSet, primary_key: Setting::NotSet,
authorize_typos: Setting::NotSet, authorize_typos: Setting::NotSet,
disabled_typos_terms: Setting::NotSet, disable_on_numbers: Setting::NotSet,
exact_words: Setting::NotSet, exact_words: Setting::NotSet,
min_word_len_two_typos: Setting::NotSet, min_word_len_two_typos: Setting::NotSet,
min_word_len_one_typo: Setting::NotSet, min_word_len_one_typo: Setting::NotSet,
@ -357,8 +357,12 @@ impl<'a, 't, 'i> Settings<'a, 't, 'i> {
self.min_word_len_one_typo = Setting::Reset; self.min_word_len_one_typo = Setting::Reset;
} }
pub fn set_disabled_typos_terms(&mut self, disabled_typos_terms: DisabledTyposTerms) { pub fn set_disable_on_numbers(&mut self, disable_on_numbers: bool) {
self.disabled_typos_terms = Setting::Set(disabled_typos_terms); self.disable_on_numbers = Setting::Set(disable_on_numbers);
}
pub fn reset_disable_on_numbers(&mut self) {
self.disable_on_numbers = Setting::Reset;
} }
pub fn set_exact_words(&mut self, words: BTreeSet<String>) { pub fn set_exact_words(&mut self, words: BTreeSet<String>) {
@ -874,15 +878,20 @@ impl<'a, 't, 'i> Settings<'a, 't, 'i> {
} }
fn update_disabled_typos_terms(&mut self) -> Result<()> { fn update_disabled_typos_terms(&mut self) -> Result<()> {
match self.disabled_typos_terms { let mut disabled_typos_terms = self.index.disabled_typos_terms(self.wtxn)?;
Setting::Set(disabled_typos_terms) => { match self.disable_on_numbers {
self.index.put_disabled_typos_terms(self.wtxn, &disabled_typos_terms)?; Setting::Set(disable_on_numbers) => {
disabled_typos_terms.disable_on_numbers = disable_on_numbers;
} }
Setting::Reset => { Setting::Reset => {
self.index.delete_disabled_typos_terms(self.wtxn)?; self.index.delete_disabled_typos_terms(self.wtxn)?;
disabled_typos_terms.disable_on_numbers =
DisabledTyposTerms::default().disable_on_numbers;
} }
Setting::NotSet => (), Setting::NotSet => (),
} }
self.index.put_disabled_typos_terms(self.wtxn, &disabled_typos_terms)?;
Ok(()) Ok(())
} }

View File

@ -896,7 +896,7 @@ fn test_correct_settings_init() {
localized_attributes_rules, localized_attributes_rules,
prefix_search, prefix_search,
facet_search, facet_search,
disabled_typos_terms, disable_on_numbers,
} = settings; } = settings;
assert!(matches!(searchable_fields, Setting::NotSet)); assert!(matches!(searchable_fields, Setting::NotSet));
assert!(matches!(displayed_fields, Setting::NotSet)); assert!(matches!(displayed_fields, Setting::NotSet));
@ -924,7 +924,7 @@ fn test_correct_settings_init() {
assert!(matches!(localized_attributes_rules, Setting::NotSet)); assert!(matches!(localized_attributes_rules, Setting::NotSet));
assert!(matches!(prefix_search, Setting::NotSet)); assert!(matches!(prefix_search, Setting::NotSet));
assert!(matches!(facet_search, Setting::NotSet)); assert!(matches!(facet_search, Setting::NotSet));
assert!(matches!(disabled_typos_terms, Setting::NotSet)); assert!(matches!(disable_on_numbers, Setting::NotSet));
}) })
.unwrap(); .unwrap();
} }