Simplify iterator chaining in facet sort

This commit is contained in:
Mubelotix
2025-06-30 14:05:23 +02:00
parent f86f4f619f
commit f6803dd7d1

View File

@ -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),
}) })
} }