diff --git a/Cargo.lock b/Cargo.lock index 7833b420a..b1cb87f83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2711,9 +2711,9 @@ dependencies = [ [[package]] name = "hannoy" -version = "0.0.9-nested-rtxns-2" +version = "0.1.0-nested-rtxns" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06eda090938d9dcd568c8c2a5de383047ed9191578ebf4a342d2975d16e621f2" +checksum = "be82bf3f2108ddc8885e3d306fcd7f4692066bfe26065ca8b42ba417f3c26dd1" dependencies = [ "bytemuck", "byteorder", diff --git a/crates/milli/Cargo.toml b/crates/milli/Cargo.toml index 583dbbfae..2f39173f7 100644 --- a/crates/milli/Cargo.toml +++ b/crates/milli/Cargo.toml @@ -91,7 +91,7 @@ rhai = { version = "1.23.6", features = [ "sync", ] } arroy = "0.6.4-nested-rtxns" -hannoy = { version = "0.0.9-nested-rtxns-2", features = ["arroy"] } +hannoy = { version = "0.1.0-nested-rtxns", features = ["arroy"] } rand = "0.8.5" tracing = "0.1.41" ureq = { version = "2.12.1", features = ["json"] } diff --git a/crates/milli/src/vector/store.rs b/crates/milli/src/vector/store.rs index 100571e85..f045c66a6 100644 --- a/crates/milli/src/vector/store.rs +++ b/crates/milli/src/vector/store.rs @@ -1,5 +1,5 @@ use hannoy::distances::{Cosine, Hamming}; -use hannoy::ItemId; +use hannoy::{ItemId, Searched}; use heed::{RoTxn, RwTxn, Unspecified}; use ordered_float::OrderedFloat; use rand::SeedableRng as _; @@ -974,7 +974,7 @@ impl VectorStore { } if let Some(mut ret) = searcher.by_item(rtxn, item)? { - results.append(&mut ret); + results.append(&mut ret.nns); } } results.sort_unstable_by_key(|(_, distance)| OrderedFloat(*distance)); @@ -1028,10 +1028,9 @@ impl VectorStore { searcher.candidates(filter); } - let (res, _degraded) = - &mut searcher - .by_vector_with_cancellation(rtxn, vector, || time_budget.exceeded())?; - results.append(res); + let Searched { mut nns, did_cancel: _ } = + searcher.by_vector_with_cancellation(rtxn, vector, || time_budget.exceeded())?; + results.append(&mut nns); } results.sort_unstable_by_key(|(_, distance)| OrderedFloat(*distance));