mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-12-25 14:10:06 +01:00
Throw a query time error when a sort param is used but sort ranking rule is missing
This commit is contained in:
parent
8dca36433c
commit
fd3daa4423
@ -18,7 +18,7 @@ pub(crate) use self::facet::ParserRule;
|
|||||||
pub use self::facet::{FacetDistribution, FacetNumberIter, FilterCondition, Operator};
|
pub use self::facet::{FacetDistribution, FacetNumberIter, FilterCondition, Operator};
|
||||||
pub use self::matching_words::MatchingWords;
|
pub use self::matching_words::MatchingWords;
|
||||||
use self::query_tree::QueryTreeBuilder;
|
use self::query_tree::QueryTreeBuilder;
|
||||||
use crate::criterion::AscDesc;
|
use crate::criterion::{AscDesc, Criterion};
|
||||||
use crate::error::UserError;
|
use crate::error::UserError;
|
||||||
use crate::search::criteria::r#final::{Final, FinalResult};
|
use crate::search::criteria::r#final::{Final, FinalResult};
|
||||||
use crate::{DocumentId, Index, Result};
|
use crate::{DocumentId, Index, Result};
|
||||||
@ -159,6 +159,14 @@ impl<'a> Search<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We check that the sort ranking rule exists and throw an
|
||||||
|
// error if we try to use it and that it doesn't.
|
||||||
|
let sort_ranking_rule_missing = !self.index.criteria(self.rtxn)?.contains(&Criterion::Sort);
|
||||||
|
let empty_sort_criteria = self.sort_criteria.as_ref().map_or(true, |s| s.is_empty());
|
||||||
|
if sort_ranking_rule_missing && !empty_sort_criteria {
|
||||||
|
return Err(UserError::SortRankingRuleMissing.into());
|
||||||
|
}
|
||||||
|
|
||||||
let criteria_builder = criteria::CriteriaBuilder::new(self.rtxn, self.index)?;
|
let criteria_builder = criteria::CriteriaBuilder::new(self.rtxn, self.index)?;
|
||||||
let criteria = criteria_builder.build(
|
let criteria = criteria_builder.build(
|
||||||
query_tree,
|
query_tree,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user