From 5fbe4436c8b992cf506da76f714e7ffcb74c5d1d Mon Sep 17 00:00:00 2001 From: Kerollmops Date: Thu, 4 Dec 2025 14:06:45 +0100 Subject: [PATCH] Bump hannoy to v0.1.0-nested-rtxns --- Cargo.lock | 4 ++-- crates/milli/Cargo.toml | 2 +- crates/milli/src/vector/store.rs | 11 +++++------ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2e8b5b22..9bff95b23 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));