Skip to content

Commit 0ae4694

Browse files
committed
Fix sim hash filtering to use correct iterator length
1 parent 04160ac commit 0ae4694

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

crates/geo_filters/src/diff_count/sim_hash.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,10 @@ impl<C: GeoConfig<Diff>> GeoDiffCount<'_, C> {
104104
expected_diff_size: usize,
105105
) -> (impl Iterator<Item = SimHash> + '_, usize) {
106106
let range = self.sim_hash_range(expected_diff_size);
107-
let min_matches = range
108-
.len()
109-
.saturating_sub(expected_diff_size)
110-
.max(SIM_BUCKETS / 2);
111-
let filtered_iter = self
112-
.sim_hashes()
107+
let sim_hash_iter = self.sim_hashes();
108+
let n = range.len().min(sim_hash_iter.len());
109+
let min_matches = n.saturating_sub(expected_diff_size).max(SIM_BUCKETS / 2);
110+
let filtered_iter = sim_hash_iter
113111
.skip_while(move |(bucket_id, _)| *bucket_id >= range.end)
114112
.take_while(move |(bucket_id, _)| *bucket_id >= range.start)
115113
.map(|(_, sim_hash)| sim_hash);

0 commit comments

Comments
 (0)