diff --git a/crates/milli/src/update/settings.rs b/crates/milli/src/update/settings.rs index 85259c2d0..1f4bd5ec8 100644 --- a/crates/milli/src/update/settings.rs +++ b/crates/milli/src/update/settings.rs @@ -1348,8 +1348,21 @@ impl InnerIndexSettingsDiff { let cache_exact_attributes = old_settings.exact_attributes != new_settings.exact_attributes; - let cache_user_defined_searchables = old_settings.user_defined_searchable_fields - != new_settings.user_defined_searchable_fields; + // Check if any searchable field has been added or removed form the list, + // Changing the order should not be considered as a change for reindexing. + let cache_user_defined_searchables = match ( + &old_settings.user_defined_searchable_fields, + &new_settings.user_defined_searchable_fields, + ) { + (Some(old), Some(new)) => { + let old: BTreeSet<_> = old.iter().collect(); + let new: BTreeSet<_> = new.iter().collect(); + + old != new + } + (None, None) => false, + _otherwise => true, + }; // if the user-defined searchables changed, then we need to reindex prompts. if cache_user_defined_searchables {