diff --git a/meilisearch-http/src/error.rs b/meilisearch-http/src/error.rs index 52538c862..00229960e 100644 --- a/meilisearch-http/src/error.rs +++ b/meilisearch-http/src/error.rs @@ -83,7 +83,6 @@ impl ErrorCode for MilliError<'_> { UserError::AttributeLimitReached => Code::MaxFieldsLimitExceeded, UserError::InvalidFilter(_) => Code::Filter, UserError::InvalidFilterAttribute(_) => Code::Filter, - UserError::InvalidSortName { .. } => Code::Sort, UserError::MissingDocumentId { .. } => Code::MissingDocumentId, UserError::MissingPrimaryKey => Code::MissingPrimaryKey, UserError::PrimaryKeyCannotBeChanged => Code::PrimaryKeyAlreadyPresent, @@ -92,9 +91,9 @@ impl ErrorCode for MilliError<'_> { UserError::UnknownInternalDocumentId { .. } => Code::DocumentNotFound, UserError::InvalidFacetsDistribution { .. } => Code::BadRequest, UserError::InvalidGeoField { .. } => Code::InvalidGeoField, - UserError::InvalidSortableAttribute { .. } - | UserError::InvalidReservedSortName { .. } => Code::Sort, - UserError::CriterionError(_) => Code::BadRequest, + UserError::InvalidSortableAttribute { .. } => Code::Sort, + UserError::SortError(_) => Code::Sort, + UserError::CriterionError(_) => Code::InvalidRankingRule, } } } diff --git a/meilisearch-lib/src/error.rs b/meilisearch-lib/src/error.rs index a369381fe..d29c18d25 100644 --- a/meilisearch-lib/src/error.rs +++ b/meilisearch-lib/src/error.rs @@ -44,7 +44,6 @@ impl ErrorCode for MilliError<'_> { UserError::AttributeLimitReached => Code::MaxFieldsLimitExceeded, UserError::InvalidFilter(_) => Code::Filter, UserError::InvalidFilterAttribute(_) => Code::Filter, - UserError::InvalidSortName { .. } => Code::Sort, UserError::MissingDocumentId { .. } => Code::MissingDocumentId, UserError::MissingPrimaryKey => Code::MissingPrimaryKey, UserError::PrimaryKeyCannotBeChanged => Code::PrimaryKeyAlreadyPresent, @@ -52,10 +51,10 @@ impl ErrorCode for MilliError<'_> { UserError::SortRankingRuleMissing => Code::Sort, UserError::UnknownInternalDocumentId { .. } => Code::DocumentNotFound, UserError::InvalidFacetsDistribution { .. } => Code::BadRequest, - UserError::InvalidSortableAttribute { .. } - | UserError::InvalidReservedSortName { .. } => Code::Sort, + UserError::InvalidSortableAttribute { .. } => Code::Sort, UserError::CriterionError(_) => Code::InvalidRankingRule, UserError::InvalidGeoField { .. } => Code::InvalidGeoField, + UserError::SortError(_) => Code::Sort, } } } diff --git a/meilisearch-lib/src/index/search.rs b/meilisearch-lib/src/index/search.rs index 37f4e2a33..edc672897 100644 --- a/meilisearch-lib/src/index/search.rs +++ b/meilisearch-lib/src/index/search.rs @@ -7,7 +7,8 @@ use heed::RoTxn; use indexmap::IndexMap; use meilisearch_tokenizer::{Analyzer, AnalyzerConfig, Token}; use milli::{ - AscDesc, AscDescError, FieldId, FieldsIdsMap, FilterCondition, MatchingWords, UserError, + AscDesc, AscDescError, FieldId, FieldsIdsMap, FilterCondition, MatchingWords, SortError, + UserError, }; use regex::Regex; use serde::{Deserialize, Serialize}; @@ -113,15 +114,8 @@ impl Index { if let Some(ref sort) = query.sort { let sort = match sort.iter().map(|s| AscDesc::from_str(s)).collect() { Ok(sorts) => sorts, - Err(AscDescError::InvalidSyntax { name }) => { - return Err(IndexError::Milli( - UserError::InvalidSortName { name }.into(), - )) - } - Err(AscDescError::ReservedKeyword { name }) => { - return Err(IndexError::Milli( - UserError::InvalidReservedSortName { name }.into(), - )) + Err(asc_desc_error) => { + return Err(IndexError::Milli(SortError::from(asc_desc_error).into())) } };