Fix behavior change in the Attributes criterion

This commit is contained in:
ManyTheFish
2025-03-06 14:18:25 +01:00
parent 5ceddbda84
commit ed1dcbe0f7
6 changed files with 109 additions and 95 deletions

View File

@ -92,7 +92,10 @@ impl RankingRuleGraphTrait for FidGraph {
}
// always lookup the max_fid if we don't already and add an artificial condition for max scoring
let max_weight = weights_map.max_weight();
let max_weight = ctx
.index
.max_searchable_attribute_weight(ctx.txn)?
.or_else(|| weights_map.max_weight());
if let Some(max_weight) = max_weight {
if current_max_weight < max_weight {

View File

@ -8,8 +8,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -25,8 +25,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -42,8 +42,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -59,8 +59,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -76,8 +76,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -93,8 +93,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -110,8 +110,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -127,8 +127,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -144,8 +144,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -161,8 +161,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -178,8 +178,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -195,8 +195,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -212,8 +212,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -229,8 +229,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(

View File

@ -8,8 +8,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -25,8 +25,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -42,8 +42,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -59,8 +59,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -76,8 +76,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -93,8 +93,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -110,8 +110,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -127,8 +127,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -144,8 +144,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -161,8 +161,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -178,8 +178,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -195,8 +195,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -212,8 +212,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -229,8 +229,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(

View File

@ -8,8 +8,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 6,
max_rank: 6,
rank: 11,
max_rank: 11,
},
),
Position(
@ -25,8 +25,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 6,
max_rank: 6,
rank: 11,
max_rank: 11,
},
),
Position(
@ -42,8 +42,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 6,
max_rank: 6,
rank: 11,
max_rank: 11,
},
),
Position(
@ -59,8 +59,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 6,
max_rank: 6,
rank: 11,
max_rank: 11,
},
),
Position(
@ -76,8 +76,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 6,
max_rank: 6,
rank: 11,
max_rank: 11,
},
),
Position(

View File

@ -8,8 +8,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -25,8 +25,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -42,8 +42,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -59,8 +59,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -76,8 +76,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -93,8 +93,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -110,8 +110,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -127,8 +127,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -144,8 +144,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -161,8 +161,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -178,8 +178,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -195,8 +195,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -212,8 +212,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(
@ -229,8 +229,8 @@ expression: "format!(\"{document_ids_scores:#?}\")"
[
Fid(
Rank {
rank: 3,
max_rank: 3,
rank: 5,
max_rank: 5,
},
),
Position(