Remove excluded document in criteria iterations

- pass excluded document to criteria to remove them in higher levels of the bucket-sort
- merge already returned document with excluded documents to avoid duplicas

Related to #125 and #112
Fix #170
This commit is contained in:
many
2021-04-28 18:01:23 +02:00
parent 374c2782ad
commit ee09e50e7f
9 changed files with 149 additions and 62 deletions

View File

@ -1,9 +1,8 @@
use roaring::RoaringBitmap;
use crate::search::query_tree::Operation;
use crate::search::WordDerivationsCache;
use super::{Criterion, CriterionResult};
use super::{Criterion, CriterionResult, CriterionParameters};
pub struct Initial {
answer: Option<CriterionResult>
@ -22,7 +21,7 @@ impl Initial {
impl Criterion for Initial {
#[logging_timer::time("Initial::{}")]
fn next(&mut self, _: &mut WordDerivationsCache) -> anyhow::Result<Option<CriterionResult>> {
fn next(&mut self, _: &mut CriterionParameters) -> anyhow::Result<Option<CriterionResult>> {
Ok(self.answer.take())
}
}