From 953a82ca04f64a6b3db1c421fc7ab778038357ea Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Wed, 4 Dec 2024 11:15:29 +0100 Subject: [PATCH 1/3] Add new error message --- crates/meilisearch-types/src/error.rs | 1 + crates/meilisearch/src/search/mod.rs | 7 ++++++ .../meilisearch/tests/search/facet_search.rs | 22 +++++++++++++++---- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/crates/meilisearch-types/src/error.rs b/crates/meilisearch-types/src/error.rs index 4b930bf8d..c68059682 100644 --- a/crates/meilisearch-types/src/error.rs +++ b/crates/meilisearch-types/src/error.rs @@ -279,6 +279,7 @@ InvalidSearchPage , InvalidRequest , BAD_REQUEST ; InvalidSearchQ , InvalidRequest , BAD_REQUEST ; InvalidFacetSearchQuery , InvalidRequest , BAD_REQUEST ; InvalidFacetSearchName , InvalidRequest , BAD_REQUEST ; +InvalidFacetSearchDisabled , InvalidRequest , BAD_REQUEST ; InvalidSearchVector , InvalidRequest , BAD_REQUEST ; InvalidSearchShowMatchesPosition , InvalidRequest , BAD_REQUEST ; InvalidSearchShowRankingScore , InvalidRequest , BAD_REQUEST ; diff --git a/crates/meilisearch/src/search/mod.rs b/crates/meilisearch/src/search/mod.rs index 7e185e951..9e0c936b7 100644 --- a/crates/meilisearch/src/search/mod.rs +++ b/crates/meilisearch/src/search/mod.rs @@ -1407,6 +1407,13 @@ pub fn perform_facet_search( None => TimeBudget::default(), }; + if !index.facet_search(&rtxn)? { + return Err(ResponseError::from_msg( + "The facet search is disabled for this index".to_string(), + Code::InvalidFacetSearchDisabled, + )); + } + // In the faceted search context, we want to use the intersection between the locales provided by the user // and the locales of the facet string. // If the facet string is not localized, we **ignore** the locales provided by the user because the facet data has no locale. diff --git a/crates/meilisearch/tests/search/facet_search.rs b/crates/meilisearch/tests/search/facet_search.rs index 8fbeae293..418cb4da4 100644 --- a/crates/meilisearch/tests/search/facet_search.rs +++ b/crates/meilisearch/tests/search/facet_search.rs @@ -221,8 +221,15 @@ async fn add_documents_and_deactivate_facet_search() { let (response, code) = index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; - assert_eq!(code, 200, "{}", response); - assert_eq!(dbg!(response)["facetHits"].as_array().unwrap().len(), 0); + assert_eq!(code, 400, "{}", response); + snapshot!(response, @r###" + { + "message": "Facet search is disabled for this index", + "code": "invalid_search_disabled_facet_search", + "type": "invalid_request", + "link": "https://docs.meilisearch.com/errors#invalid_search_disabled_facet_search" + } + "###); } #[actix_rt::test] @@ -245,8 +252,15 @@ async fn deactivate_facet_search_and_add_documents() { let (response, code) = index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; - assert_eq!(code, 200, "{}", response); - assert_eq!(dbg!(response)["facetHits"].as_array().unwrap().len(), 0); + assert_eq!(code, 400, "{}", response); + snapshot!(response, @r###" + { + "message": "Facet search is disabled for this index", + "code": "invalid_search_disabled_facet_search", + "type": "invalid_request", + "link": "https://docs.meilisearch.com/errors#invalid_search_disabled_facet_search" + } + "###); } #[actix_rt::test] From fc1df5793cb5fa8d462081f0e4f1dad511a8746a Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Wed, 4 Dec 2024 14:35:20 +0100 Subject: [PATCH 2/3] fix tests --- crates/meilisearch/tests/search/facet_search.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/meilisearch/tests/search/facet_search.rs b/crates/meilisearch/tests/search/facet_search.rs index 418cb4da4..23f312490 100644 --- a/crates/meilisearch/tests/search/facet_search.rs +++ b/crates/meilisearch/tests/search/facet_search.rs @@ -224,10 +224,10 @@ async fn add_documents_and_deactivate_facet_search() { assert_eq!(code, 400, "{}", response); snapshot!(response, @r###" { - "message": "Facet search is disabled for this index", - "code": "invalid_search_disabled_facet_search", + "message": "The facet search is disabled for this index", + "code": "invalid_facet_search_disabled", "type": "invalid_request", - "link": "https://docs.meilisearch.com/errors#invalid_search_disabled_facet_search" + "link": "https://docs.meilisearch.com/errors#invalid_facet_search_disabled" } "###); } @@ -255,10 +255,10 @@ async fn deactivate_facet_search_and_add_documents() { assert_eq!(code, 400, "{}", response); snapshot!(response, @r###" { - "message": "Facet search is disabled for this index", - "code": "invalid_search_disabled_facet_search", + "message": "The facet search is disabled for this index", + "code": "invalid_facet_search_disabled", "type": "invalid_request", - "link": "https://docs.meilisearch.com/errors#invalid_search_disabled_facet_search" + "link": "https://docs.meilisearch.com/errors#invalid_facet_search_disabled" } "###); } From a0a3b55700aaf6bd633d57b494d53ce66df0bf72 Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Thu, 5 Dec 2024 14:48:29 +0100 Subject: [PATCH 3/3] Change error code --- crates/meilisearch-types/src/error.rs | 2 +- crates/meilisearch/src/search/mod.rs | 2 +- crates/meilisearch/tests/search/facet_search.rs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/meilisearch-types/src/error.rs b/crates/meilisearch-types/src/error.rs index c68059682..afc876b42 100644 --- a/crates/meilisearch-types/src/error.rs +++ b/crates/meilisearch-types/src/error.rs @@ -279,7 +279,7 @@ InvalidSearchPage , InvalidRequest , BAD_REQUEST ; InvalidSearchQ , InvalidRequest , BAD_REQUEST ; InvalidFacetSearchQuery , InvalidRequest , BAD_REQUEST ; InvalidFacetSearchName , InvalidRequest , BAD_REQUEST ; -InvalidFacetSearchDisabled , InvalidRequest , BAD_REQUEST ; +FacetSearchDisabled , InvalidRequest , BAD_REQUEST ; InvalidSearchVector , InvalidRequest , BAD_REQUEST ; InvalidSearchShowMatchesPosition , InvalidRequest , BAD_REQUEST ; InvalidSearchShowRankingScore , InvalidRequest , BAD_REQUEST ; diff --git a/crates/meilisearch/src/search/mod.rs b/crates/meilisearch/src/search/mod.rs index 9e0c936b7..7beaad6a5 100644 --- a/crates/meilisearch/src/search/mod.rs +++ b/crates/meilisearch/src/search/mod.rs @@ -1410,7 +1410,7 @@ pub fn perform_facet_search( if !index.facet_search(&rtxn)? { return Err(ResponseError::from_msg( "The facet search is disabled for this index".to_string(), - Code::InvalidFacetSearchDisabled, + Code::FacetSearchDisabled, )); } diff --git a/crates/meilisearch/tests/search/facet_search.rs b/crates/meilisearch/tests/search/facet_search.rs index 23f312490..19224c3df 100644 --- a/crates/meilisearch/tests/search/facet_search.rs +++ b/crates/meilisearch/tests/search/facet_search.rs @@ -225,9 +225,9 @@ async fn add_documents_and_deactivate_facet_search() { snapshot!(response, @r###" { "message": "The facet search is disabled for this index", - "code": "invalid_facet_search_disabled", + "code": "facet_search_disabled", "type": "invalid_request", - "link": "https://docs.meilisearch.com/errors#invalid_facet_search_disabled" + "link": "https://docs.meilisearch.com/errors#facet_search_disabled" } "###); } @@ -256,9 +256,9 @@ async fn deactivate_facet_search_and_add_documents() { snapshot!(response, @r###" { "message": "The facet search is disabled for this index", - "code": "invalid_facet_search_disabled", + "code": "facet_search_disabled", "type": "invalid_request", - "link": "https://docs.meilisearch.com/errors#invalid_facet_search_disabled" + "link": "https://docs.meilisearch.com/errors#facet_search_disabled" } "###); }