mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-29 16:45:30 +08:00
Don't compute split_words for phrases
This commit is contained in:
parent
a37da36766
commit
43f8940d82
@ -275,7 +275,8 @@ fn find_split_words(ctx: &mut SearchContext, word: &str) -> Result<Option<Intern
|
|||||||
impl Interned<QueryTerm> {
|
impl Interned<QueryTerm> {
|
||||||
fn initialize_one_typo_subterm(self, ctx: &mut SearchContext) -> Result<()> {
|
fn initialize_one_typo_subterm(self, ctx: &mut SearchContext) -> Result<()> {
|
||||||
let self_mut = ctx.term_interner.get_mut(self);
|
let self_mut = ctx.term_interner.get_mut(self);
|
||||||
let QueryTerm { original, is_prefix, one_typo, max_nbr_typos, .. } = self_mut;
|
let QueryTerm { original, is_prefix, zero_typo, one_typo, max_nbr_typos, .. } = self_mut;
|
||||||
|
let is_phrase = zero_typo.phrase.is_some();
|
||||||
let original = *original;
|
let original = *original;
|
||||||
let is_prefix = *is_prefix;
|
let is_prefix = *is_prefix;
|
||||||
// let original_str = ctx.word_interner.get(*original).to_owned();
|
// let original_str = ctx.word_interner.get(*original).to_owned();
|
||||||
@ -300,13 +301,17 @@ impl Interned<QueryTerm> {
|
|||||||
})?;
|
})?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let split_words = if !is_phrase {
|
||||||
let original_str = ctx.word_interner.get(original).to_owned();
|
let original_str = ctx.word_interner.get(original).to_owned();
|
||||||
let split_words = find_split_words(ctx, original_str.as_str())?;
|
find_split_words(ctx, original_str.as_str())?
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
let self_mut = ctx.term_interner.get_mut(self);
|
let self_mut = ctx.term_interner.get_mut(self);
|
||||||
|
|
||||||
// Only add the split words to the derivations if:
|
// Only add the split words to the derivations if:
|
||||||
// 1. the term is not an ngram; OR
|
// 1. the term is neither an ngram nor a phrase; OR
|
||||||
// 2. the term is an ngram, but the split words are different from the ngram's component words
|
// 2. the term is an ngram, but the split words are different from the ngram's component words
|
||||||
let split_words = if let Some((ngram_words, split_words)) =
|
let split_words = if let Some((ngram_words, split_words)) =
|
||||||
self_mut.ngram_words.as_ref().zip(split_words.as_ref())
|
self_mut.ngram_words.as_ref().zip(split_words.as_ref())
|
||||||
|
Loading…
Reference in New Issue
Block a user