diff --git a/Cargo.lock b/Cargo.lock index 065be362f..0e42f60f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1005,7 +1005,7 @@ dependencies = [ "heed", "jemallocator", "milli", - "roaring", + "roaring 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "stderrlog", "structopt", @@ -1287,7 +1287,7 @@ dependencies = [ "rand 0.8.3", "rayon", "regex", - "roaring", + "roaring 0.6.5 (git+https://github.com/RoaringBitmap/roaring-rs?branch=optimize-ops)", "serde", "serde_json", "slice-group-by", @@ -1973,6 +1973,16 @@ dependencies = [ "retain_mut", ] +[[package]] +name = "roaring" +version = "0.6.5" +source = "git+https://github.com/RoaringBitmap/roaring-rs?branch=optimize-ops#6689f8c9dd2efdbfde4442d4d803e87169780593" +dependencies = [ + "bytemuck", + "byteorder", + "retain_mut", +] + [[package]] name = "rustc_version" version = "0.2.3" diff --git a/milli/Cargo.toml b/milli/Cargo.toml index ef9c64b7b..b54c0d768 100644 --- a/milli/Cargo.toml +++ b/milli/Cargo.toml @@ -27,7 +27,7 @@ once_cell = "1.5.2" ordered-float = "2.1.1" rayon = "1.5.0" regex = "1.4.3" -roaring = "0.6.5" +roaring = { git = "https://github.com/RoaringBitmap/roaring-rs", branch = "optimize-ops" } serde = { version = "1.0.123", features = ["derive"] } serde_json = { version = "1.0.62", features = ["preserve_order"] } slice-group-by = "0.2.6" diff --git a/milli/src/search/criteria/typo.rs b/milli/src/search/criteria/typo.rs index bf58fa258..5a3c93ac8 100644 --- a/milli/src/search/criteria/typo.rs +++ b/milli/src/search/criteria/typo.rs @@ -328,6 +328,7 @@ mod test { let parent = Initial::new(query_tree, facet_candidates); let mut criteria = Typo::new(&context, Box::new(parent)); + assert!(criteria.next(&mut wdcache).unwrap().unwrap().candidates.is_none()); assert!(criteria.next(&mut wdcache).unwrap().is_none()); } @@ -440,7 +441,7 @@ mod test { ]), ])), candidates: Some(&candidates_1 & &facet_candidates), - bucket_candidates: candidates_1 & &facet_candidates, + bucket_candidates: facet_candidates.clone(), }; assert_eq!(criteria.next(&mut wdcache).unwrap(), Some(expected_1)); @@ -462,7 +463,7 @@ mod test { ]), ])), candidates: Some(&candidates_2 & &facet_candidates), - bucket_candidates: candidates_2 & &facet_candidates, + bucket_candidates: RoaringBitmap::new(), }; assert_eq!(criteria.next(&mut wdcache).unwrap(), Some(expected_2));