mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-07-27 08:41:00 +00:00
Simplify iterator chaining in facet sort
This commit is contained in:
@ -88,39 +88,24 @@ impl<'ctx> SortedDocumentsIteratorBuilder<'ctx> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Create builders for the next level of the tree
|
// Create builders for the next level of the tree
|
||||||
let number_db2 = number_db;
|
let number_iter = number_iter.map(|r| r.map(|(d, _)| d));
|
||||||
let string_db2 = string_db;
|
let string_iter = string_iter.map(|r| r.map(|(d, _)| d));
|
||||||
let number_iter =
|
let next_children = number_iter.chain(string_iter).map(move |r| {
|
||||||
number_iter.map(move |r| -> crate::Result<SortedDocumentsIteratorBuilder> {
|
Ok(SortedDocumentsIteratorBuilder {
|
||||||
let (docids, _bytes) = r?;
|
index,
|
||||||
Ok(SortedDocumentsIteratorBuilder {
|
rtxn,
|
||||||
index,
|
number_db,
|
||||||
rtxn,
|
string_db,
|
||||||
number_db,
|
fields: &fields[1..],
|
||||||
string_db,
|
candidates: r?,
|
||||||
fields: &fields[1..],
|
geo_candidates,
|
||||||
candidates: docids,
|
})
|
||||||
geo_candidates,
|
});
|
||||||
})
|
|
||||||
});
|
|
||||||
let string_iter =
|
|
||||||
string_iter.map(move |r| -> crate::Result<SortedDocumentsIteratorBuilder> {
|
|
||||||
let (docids, _bytes) = r?;
|
|
||||||
Ok(SortedDocumentsIteratorBuilder {
|
|
||||||
index,
|
|
||||||
rtxn,
|
|
||||||
number_db: number_db2,
|
|
||||||
string_db: string_db2,
|
|
||||||
fields: &fields[1..],
|
|
||||||
candidates: docids,
|
|
||||||
geo_candidates,
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
Ok(SortedDocumentsIterator::Branch {
|
Ok(SortedDocumentsIterator::Branch {
|
||||||
current_child: None,
|
current_child: None,
|
||||||
next_children_size: size,
|
next_children_size: size,
|
||||||
next_children: Box::new(number_iter.chain(string_iter)),
|
next_children: Box::new(next_children),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user