diff --git a/Cargo.lock b/Cargo.lock index 30bd2e957..f1ee204a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2581,7 +2581,7 @@ dependencies = [ [[package]] name = "hannoy" version = "0.7.0" -source = "git+https://github.com/kerollmops/hannoy?branch=expose-private-types#98c7adda0d96a9f98203797d24c26a4de06cab3e" +source = "git+https://github.com/kerollmops/hannoy?branch=basic-and-ugly-filtering#c8c9d8bf58642df8cf7e994d5cd8018b91c42369" dependencies = [ "bytemuck", "byteorder", @@ -3344,7 +3344,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -6942,7 +6942,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] diff --git a/crates/milli/Cargo.toml b/crates/milli/Cargo.toml index e18e13935..61deaf0d2 100644 --- a/crates/milli/Cargo.toml +++ b/crates/milli/Cargo.toml @@ -87,7 +87,7 @@ rhai = { version = "1.22.2", features = [ "no_time", "sync", ] } -hannoy = { git = "https://github.com/kerollmops/hannoy", branch = "expose-private-types" } +hannoy = { git = "https://github.com/kerollmops/hannoy", branch = "basic-and-ugly-filtering" } rand = "0.8.5" tracing = "0.1.41" ureq = { version = "2.12.1", features = ["json"] } diff --git a/crates/milli/src/vector/mod.rs b/crates/milli/src/vector/mod.rs index 7219e8708..7fcbecd50 100644 --- a/crates/milli/src/vector/mod.rs +++ b/crates/milli/src/vector/mod.rs @@ -461,13 +461,12 @@ impl HannoyWrapper { for reader in self.readers(rtxn, db) { let reader = reader?; - let searcher = reader.nns(limit, limit * 2); // TODO find better ef + let mut searcher = reader.nns(limit, limit * 2); // TODO find better ef if let Some(filter) = filter { if reader.item_ids().is_disjoint(filter) { continue; } - tracing::error!("Hannoy doesn't support filtering"); - // searcher.candidates(filter); + searcher.candidates(filter); } if let Some(mut ret) = searcher.by_item(rtxn, item)? { @@ -504,13 +503,12 @@ impl HannoyWrapper { for reader in self.readers(rtxn, db) { let reader = reader?; - let searcher = reader.nns(limit, limit * 2); // TODO find better ef + let mut searcher = reader.nns(limit, limit * 2); // TODO find better ef if let Some(filter) = filter { if reader.item_ids().is_disjoint(filter) { continue; } - tracing::error!("Hannoy doesn't support filtering"); - // searcher.candidates(filter); + searcher.candidates(filter); } results.append(&mut searcher.by_vector(rtxn, vector)?);