mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 10:37:41 +08:00
Consecutive is false when at least 1 stop word is surrounded by words
This commit is contained in:
parent
f1da623af3
commit
af33d22f25
@ -478,14 +478,29 @@ fn resolve_plane_sweep_candidates(
|
||||
}
|
||||
Phrase(words) => {
|
||||
let mut groups_positions = Vec::with_capacity(words.len());
|
||||
for word in words.iter().filter_map(|w| w.as_ref()) {
|
||||
let positions = match words_positions.get(word) {
|
||||
Some(positions) => positions.iter().map(|p| (p, 0, p)).collect(),
|
||||
None => return Ok(vec![]),
|
||||
};
|
||||
groups_positions.push(positions);
|
||||
let mut consecutive = true;
|
||||
let mut was_last_word_a_stop_word = false;
|
||||
for word in words.iter() {
|
||||
if let Some(word) = word {
|
||||
let positions = match words_positions.get(word) {
|
||||
Some(positions) => positions.iter().map(|p| (p, 0, p)).collect(),
|
||||
None => return Ok(vec![]),
|
||||
};
|
||||
groups_positions.push(positions);
|
||||
|
||||
if was_last_word_a_stop_word {
|
||||
consecutive = false;
|
||||
}
|
||||
was_last_word_a_stop_word = false;
|
||||
} else {
|
||||
if !was_last_word_a_stop_word {
|
||||
consecutive = false;
|
||||
}
|
||||
|
||||
was_last_word_a_stop_word = true;
|
||||
}
|
||||
}
|
||||
plane_sweep(groups_positions, true)?
|
||||
plane_sweep(groups_positions, consecutive)?
|
||||
}
|
||||
Or(_, ops) => {
|
||||
let mut result = Vec::new();
|
||||
|
Loading…
Reference in New Issue
Block a user