diff --git a/index-scheduler/src/lib.rs b/index-scheduler/src/lib.rs index da57bfc9b..ca9bca820 100644 --- a/index-scheduler/src/lib.rs +++ b/index-scheduler/src/lib.rs @@ -662,7 +662,11 @@ impl IndexScheduler { let rtxn = self.env.read_txn()?; self.index_mapper.index(&rtxn, name) } - + /// Return the boolean referring if index exists. + pub fn index_exists(&self, name: &str) -> Result { + let rtxn = self.env.read_txn()?; + self.index_mapper.index_exists(&rtxn, name) + } /// Return the name of all indexes without opening them. pub fn index_names(&self) -> Result> { let rtxn = self.env.read_txn()?; @@ -3795,15 +3799,15 @@ mod tests { ]); snapshot!(snapshot_index_scheduler(&index_scheduler), name: "after_processing_the_10_tasks"); - // The index should not exists. - snapshot!(format!("{}", index_scheduler.index("doggos").map(|_| ()).unwrap_err()), @"Index `doggos` not found."); + // The index should not exist. + snapshot!(matches!(index_scheduler.index_exists("doggos"), Ok(true)), @"false"); } #[test] fn test_document_addition_cant_create_index_without_index_without_autobatching() { // We're going to execute multiple document addition that don't have // the right to create an index while there is no index currently. - // Since the autobatching is disabled, every tasks should be processed + // Since the auto-batching is disabled, every task should be processed // sequentially and throw an IndexDoesNotExists. let (index_scheduler, mut handle) = IndexScheduler::test(false, vec![]); @@ -3845,8 +3849,8 @@ mod tests { handle.advance_n_failed_batches(5); snapshot!(snapshot_index_scheduler(&index_scheduler), name: "all_tasks_processed"); - // The index should not exists. - snapshot!(format!("{}", index_scheduler.index("doggos").map(|_| ()).unwrap_err()), @"Index `doggos` not found."); + // The index should not exist. + snapshot!(matches!(index_scheduler.index_exists("doggos"), Ok(true)), @"false"); } #[test] diff --git a/meilisearch/src/analytics/mod.rs b/meilisearch/src/analytics/mod.rs index 9140e3492..3c7ca0ed3 100644 --- a/meilisearch/src/analytics/mod.rs +++ b/meilisearch/src/analytics/mod.rs @@ -102,7 +102,7 @@ pub trait Analytics: Sync + Send { /// This method should be called to aggregate post facet values searches fn post_facet_search(&self, aggregate: FacetSearchAggregator); - // this method should be called to aggregate a add documents request + // this method should be called to aggregate an add documents request fn add_documents( &self, documents_query: &UpdateDocumentsQuery, diff --git a/meilisearch/src/routes/indexes/documents.rs b/meilisearch/src/routes/indexes/documents.rs index 20c0aed07..f1bd2201c 100644 --- a/meilisearch/src/routes/indexes/documents.rs +++ b/meilisearch/src/routes/indexes/documents.rs @@ -305,7 +305,11 @@ pub async fn replace_documents( debug!(parameters = ?params, "Replace documents"); let params = params.into_inner(); - analytics.add_documents(¶ms, index_scheduler.index(&index_uid).is_err(), &req); + analytics.add_documents( + ¶ms, + index_scheduler.index_exists(&index_uid).map_or(true, |x| !x), + &req, + ); let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid); let uid = get_task_id(&req, &opt)?; @@ -342,7 +346,11 @@ pub async fn update_documents( let params = params.into_inner(); debug!(parameters = ?params, "Update documents"); - analytics.update_documents(¶ms, index_scheduler.index(&index_uid).is_err(), &req); + analytics.add_documents( + ¶ms, + index_scheduler.index_exists(&index_uid).map_or(true, |x| !x), + &req, + ); let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid); let uid = get_task_id(&req, &opt)?;