Consecutive is false when at least 1 stop word is surrounded by words

This commit is contained in:
Samyak S Sarnayak 2022-10-20 19:02:08 +05:30
parent f1da623af3
commit af33d22f25
No known key found for this signature in database
GPG Key ID: 365873F2F0C6153B

View File

@ -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();