mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 07:56:28 +00:00 
			
		
		
		
	Fix behavior change in the Attributes criterion
This commit is contained in:
		| @@ -559,6 +559,17 @@ impl Index { | ||||
|         self.main.remap_key_type::<Str>().delete(wtxn, main_key::FIELDIDS_WEIGHTS_MAP_KEY) | ||||
|     } | ||||
|  | ||||
|     pub fn max_searchable_attribute_weight(&self, rtxn: &RoTxn<'_>) -> Result<Option<Weight>> { | ||||
|         let user_defined_searchable_fields = self.user_defined_searchable_fields(rtxn)?; | ||||
|         if let Some(user_defined_searchable_fields) = user_defined_searchable_fields { | ||||
|             if !user_defined_searchable_fields.contains(&"*") { | ||||
|                 return Ok(Some(user_defined_searchable_fields.len().saturating_sub(1) as Weight)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Ok(None) | ||||
|     } | ||||
|  | ||||
|     pub fn searchable_fields_and_weights<'a>( | ||||
|         &self, | ||||
|         rtxn: &'a RoTxn<'a>, | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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( | ||||
|   | ||||
| @@ -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( | ||||
|   | ||||
| @@ -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( | ||||
|   | ||||
| @@ -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( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user