From f26826f115afeecdb8868f2d5d7d98bca4d64565 Mon Sep 17 00:00:00 2001 From: CodeMan62 Date: Fri, 16 May 2025 18:18:11 +0530 Subject: [PATCH] fix issue 5555 --- .../milli/src/search/new/query_term/compute_derivations.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/milli/src/search/new/query_term/compute_derivations.rs b/crates/milli/src/search/new/query_term/compute_derivations.rs index 5edf85e97..0a39384bd 100644 --- a/crates/milli/src/search/new/query_term/compute_derivations.rs +++ b/crates/milli/src/search/new/query_term/compute_derivations.rs @@ -131,10 +131,11 @@ fn find_one_two_typo_derivations( while let Some((derived_word, state)) = stream.next() { let derived_word = std::str::from_utf8(derived_word)?; - let derived_word_interned = word_interner.insert(derived_word.to_owned()); + // No need to intern here // in the case the typo is on the first letter, we know the number of typo // is two if get_first(derived_word) != get_first(word) { + let derived_word_interned = word_interner.insert(derived_word.to_owned()); let cf = visit(derived_word_interned, NumberOfTypos::Two)?; if cf.is_break() { break; @@ -146,12 +147,14 @@ fn find_one_two_typo_derivations( match d.to_u8() { 0 => (), 1 => { + let derived_word_interned = word_interner.insert(derived_word.to_owned()); let cf = visit(derived_word_interned, NumberOfTypos::One)?; if cf.is_break() { break; } } 2 => { + let derived_word_interned = word_interner.insert(derived_word.to_owned()); let cf = visit(derived_word_interned, NumberOfTypos::Two)?; if cf.is_break() { break;