Still limit to max hits

This commit is contained in:
Mubelotix
2025-07-01 18:33:09 +02:00
parent dedae94102
commit 600178c5ab
6 changed files with 24 additions and 1 deletions

View File

@ -33,6 +33,7 @@ pub fn bucket_sort<'ctx, Q: RankingRuleQueryTrait>(
time_budget: TimeBudget,
ranking_score_threshold: Option<f64>,
exhaustive_number_hits: bool,
max_total_hits: Option<usize>,
) -> Result<BucketSortOutput> {
logger.initial_query(query);
logger.ranking_rules(&ranking_rules);
@ -160,8 +161,11 @@ pub fn bucket_sort<'ctx, Q: RankingRuleQueryTrait>(
};
}
let max_total_hits = max_total_hits.unwrap_or(usize::MAX);
while valid_docids.len() < length
|| (exhaustive_number_hits && ranking_score_threshold.is_some())
|| (exhaustive_number_hits
&& ranking_score_threshold.is_some()
&& valid_docids.len() < max_total_hits)
{
if time_budget.exceeded() {
loop {

View File

@ -510,6 +510,7 @@ mod tests {
crate::TermsMatchingStrategy::default(),
crate::score_details::ScoringStrategy::Skip,
false,
None,
universe,
&None,
&None,

View File

@ -627,6 +627,7 @@ pub fn execute_vector_search(
vector: &[f32],
scoring_strategy: ScoringStrategy,
exhaustive_number_hits: bool,
max_total_hits: Option<usize>,
universe: RoaringBitmap,
sort_criteria: &Option<Vec<AscDesc>>,
distinct: &Option<String>,
@ -671,6 +672,7 @@ pub fn execute_vector_search(
time_budget,
ranking_score_threshold,
exhaustive_number_hits,
max_total_hits,
)?;
Ok(PartialSearchResult {
@ -691,6 +693,7 @@ pub fn execute_search(
terms_matching_strategy: TermsMatchingStrategy,
scoring_strategy: ScoringStrategy,
exhaustive_number_hits: bool,
max_total_hits: Option<usize>,
mut universe: RoaringBitmap,
sort_criteria: &Option<Vec<AscDesc>>,
distinct: &Option<String>,
@ -828,6 +831,7 @@ pub fn execute_search(
time_budget,
ranking_score_threshold,
exhaustive_number_hits,
max_total_hits,
)?
} else {
let ranking_rules =
@ -845,6 +849,7 @@ pub fn execute_search(
time_budget,
ranking_score_threshold,
exhaustive_number_hits,
max_total_hits,
)?
};