diff --git a/crates/milli/src/update/new/indexer/post_processing.rs b/crates/milli/src/update/new/indexer/post_processing.rs
index 2a01fccf3..aace70cff 100644
--- a/crates/milli/src/update/new/indexer/post_processing.rs
+++ b/crates/milli/src/update/new/indexer/post_processing.rs
@@ -7,12 +7,13 @@ use itertools::{merge_join_by, EitherOrBoth};
use super::document_changes::IndexingContext;
use crate::facet::FacetType;
use crate::index::main_key::{WORDS_FST_KEY, WORDS_PREFIXES_FST_KEY};
+use crate::progress::Progress;
use crate::update::del_add::DelAdd;
use crate::update::facet::new_incremental::FacetsUpdateIncremental;
use crate::update::facet::{FACET_GROUP_SIZE, FACET_MAX_GROUP_SIZE, FACET_MIN_LEVEL_SIZE};
use crate::update::new::facet_search_builder::FacetSearchBuilder;
use crate::update::new::merger::FacetFieldIdDelta;
-use crate::update::new::steps::IndexingStep;
+use crate::update::new::steps::{IndexingStep, PostProcessingFacets, PostProcessingWords};
use crate::update::new::word_fst_builder::{PrefixData, PrefixDelta, WordFstBuilder};
use crate::update::new::words_prefix_docids::{
compute_exact_word_prefix_docids, compute_word_prefix_docids, compute_word_prefix_fid_docids,
@@ -33,11 +34,23 @@ where
{
let index = indexing_context.index;
indexing_context.progress.update_progress(IndexingStep::PostProcessingFacets);
- compute_facet_level_database(index, wtxn, facet_field_ids_delta, &mut global_fields_ids_map)?;
- compute_facet_search_database(index, wtxn, global_fields_ids_map)?;
+ compute_facet_level_database(
+ index,
+ wtxn,
+ facet_field_ids_delta,
+ &mut global_fields_ids_map,
+ indexing_context.progress,
+ )?;
+ compute_facet_search_database(index, wtxn, global_fields_ids_map, indexing_context.progress)?;
indexing_context.progress.update_progress(IndexingStep::PostProcessingWords);
- if let Some(prefix_delta) = compute_word_fst(index, wtxn)? {
- compute_prefix_database(index, wtxn, prefix_delta, indexing_context.grenad_parameters)?;
+ if let Some(prefix_delta) = compute_word_fst(index, wtxn, indexing_context.progress)? {
+ compute_prefix_database(
+ index,
+ wtxn,
+ prefix_delta,
+ indexing_context.grenad_parameters,
+ indexing_context.progress,
+ )?;
};
Ok(())
}
@@ -48,21 +61,32 @@ fn compute_prefix_database(
wtxn: &mut RwTxn,
prefix_delta: PrefixDelta,
grenad_parameters: &GrenadParameters,
+ progress: &Progress,
) -> Result<()> {
let PrefixDelta { modified, deleted } = prefix_delta;
- // Compute word prefix docids
+
+ progress.update_progress(PostProcessingWords::WordPrefixDocids);
compute_word_prefix_docids(wtxn, index, &modified, &deleted, grenad_parameters)?;
- // Compute exact word prefix docids
+
+ progress.update_progress(PostProcessingWords::ExactWordPrefixDocids);
compute_exact_word_prefix_docids(wtxn, index, &modified, &deleted, grenad_parameters)?;
- // Compute word prefix fid docids
+
+ progress.update_progress(PostProcessingWords::WordPrefixFieldIdDocids);
compute_word_prefix_fid_docids(wtxn, index, &modified, &deleted, grenad_parameters)?;
- // Compute word prefix position docids
+
+ progress.update_progress(PostProcessingWords::WordPrefixPositionDocids);
compute_word_prefix_position_docids(wtxn, index, &modified, &deleted, grenad_parameters)
}
#[tracing::instrument(level = "trace", skip_all, target = "indexing")]
-fn compute_word_fst(index: &Index, wtxn: &mut RwTxn) -> Result