Pass a progress callback to recompute_word_fst_from_word_docids_database

fixes https://github.com/meilisearch/meilisearch/pull/5494#discussion_r2069377991
This commit is contained in:
ManyTheFish 2025-05-05 16:23:01 +02:00
parent a964251cee
commit 73e4206b3c
2 changed files with 8 additions and 10 deletions

View File

@ -131,7 +131,12 @@ fn compute_word_fst(
} }
} }
pub fn recompute_word_fst_from_word_docids_database(index: &Index, wtxn: &mut RwTxn) -> Result<()> { pub fn recompute_word_fst_from_word_docids_database(
index: &Index,
wtxn: &mut RwTxn,
progress: &Progress,
) -> Result<()> {
progress.update_progress(PostProcessingWords::WordFst);
let fst = fst::Set::default().map_data(std::borrow::Cow::Owned)?; let fst = fst::Set::default().map_data(std::borrow::Cow::Owned)?;
let mut word_fst_builder = WordFstBuilder::new(&fst)?; let mut word_fst_builder = WordFstBuilder::new(&fst)?;
let words = index.word_docids.iter(wtxn)?.remap_data_type::<DecodeIgnore>(); let words = index.word_docids.iter(wtxn)?.remap_data_type::<DecodeIgnore>();

View File

@ -3,7 +3,7 @@ use heed::RwTxn;
use super::UpgradeIndex; use super::UpgradeIndex;
use crate::progress::Progress; use crate::progress::Progress;
use crate::update::new::indexer::recompute_word_fst_from_word_docids_database; use crate::update::new::indexer::recompute_word_fst_from_word_docids_database;
use crate::{make_enum_progress, Index, Result}; use crate::{Index, Result};
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]
pub(super) struct Latest_V1_14_To_Latest_V1_15(); pub(super) struct Latest_V1_14_To_Latest_V1_15();
@ -17,14 +17,7 @@ impl UpgradeIndex for Latest_V1_14_To_Latest_V1_15 {
progress: Progress, progress: Progress,
) -> Result<bool> { ) -> Result<bool> {
// Recompute the word FST from the word docids database. // Recompute the word FST from the word docids database.
make_enum_progress! { recompute_word_fst_from_word_docids_database(index, wtxn, &progress)?;
enum TypoTolerance {
RecomputeWordFst,
}
};
progress.update_progress(TypoTolerance::RecomputeWordFst);
recompute_word_fst_from_word_docids_database(index, wtxn)?;
Ok(false) Ok(false)
} }