This commit is contained in:
ManyTheFish 2024-11-18 12:28:03 +01:00
parent 8924d486db
commit 510ca99996

View File

@ -193,15 +193,23 @@ pub fn compute_phrase_docids(
if words.is_empty() { if words.is_empty() {
return Ok(RoaringBitmap::new()); return Ok(RoaringBitmap::new());
} }
let mut candidates = RoaringBitmap::new(); let mut candidates = None;
for word in words.iter().flatten().copied() { for word in words.iter().flatten().copied() {
if let Some(word_docids) = ctx.word_docids(None, Word::Original(word))? { if let Some(word_docids) = ctx.word_docids(None, Word::Original(word))? {
candidates |= word_docids; if let Some(candidates) = candidates.as_mut() {
*candidates &= word_docids;
} else {
candidates = Some(word_docids);
}
} else { } else {
return Ok(RoaringBitmap::new()); return Ok(RoaringBitmap::new());
} }
} }
let Some(mut candidates) = candidates else {
return Ok(RoaringBitmap::new());
};
let winsize = words.len().min(3); let winsize = words.len().min(3);
for win in words.windows(winsize) { for win in words.windows(winsize) {