From e60b855a5458da57097e5d87a105fde618b86944 Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Wed, 25 Jun 2025 14:38:48 +0200 Subject: [PATCH] Delete embedders from arroy --- crates/milli/src/update/new/indexer/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/crates/milli/src/update/new/indexer/mod.rs b/crates/milli/src/update/new/indexer/mod.rs index ccfe20617..576362c89 100644 --- a/crates/milli/src/update/new/indexer/mod.rs +++ b/crates/milli/src/update/new/indexer/mod.rs @@ -218,6 +218,8 @@ where MSP: Fn() -> bool + Sync, SD: SettingsDelta + Sync, { + delete_old_embedders(wtxn, index, settings_delta)?; + let mut bbbuffers = Vec::new(); let finished_extraction = AtomicBool::new(false); @@ -369,6 +371,25 @@ fn arroy_writers_from_embedder_actions<'indexer, 'index>( .collect() } +fn delete_old_embedders<'indexer, 'index, SD>( + wtxn: &mut RwTxn<'_>, + index: &'index Index, + settings_delta: &'indexer SD, +) -> Result<()> +where + SD: SettingsDelta, +{ + for (_name, action) in settings_delta.embedder_actions() { + if let Some(WriteBackToDocuments { embedder_id, .. }) = action.write_back() { + let reader = ArroyWrapper::new(index.vector_arroy, *embedder_id, action.was_quantized); + let dimensions = reader.dimensions(wtxn)?; + reader.clear(wtxn, dimensions)?; + } + } + + Ok(()) +} + fn indexer_memory_settings( current_num_threads: usize, grenad_parameters: GrenadParameters,