From 2ea8194c185cb5692bf0b3f49df99881247dedaa Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Thu, 15 Jun 2023 17:32:27 +0200 Subject: [PATCH] Score for exact_attributes --- milli/src/search/new/exact_attribute.rs | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/milli/src/search/new/exact_attribute.rs b/milli/src/search/new/exact_attribute.rs index 6e0381295..7932f0c2a 100644 --- a/milli/src/search/new/exact_attribute.rs +++ b/milli/src/search/new/exact_attribute.rs @@ -2,6 +2,7 @@ use roaring::{MultiOps, RoaringBitmap}; use super::query_graph::QueryGraph; use super::ranking_rules::{RankingRule, RankingRuleOutput}; +use crate::score_details::{self, ScoreDetails}; use crate::search::new::query_graph::QueryNodeData; use crate::search::new::query_term::ExactTerm; use crate::{Result, SearchContext, SearchLogger}; @@ -244,7 +245,13 @@ impl State { candidates &= universe; ( State::AttributeStarts(query_graph.clone(), candidates_per_attribute), - Some(RankingRuleOutput { query: query_graph, candidates }), + Some(RankingRuleOutput { + query: query_graph, + candidates, + score: ScoreDetails::ExactAttribute( + score_details::ExactAttribute::ExactMatch, + ), + }), ) } State::AttributeStarts(query_graph, candidates_per_attribute) => { @@ -257,12 +264,24 @@ impl State { candidates &= universe; ( State::Empty(query_graph.clone()), - Some(RankingRuleOutput { query: query_graph, candidates }), + Some(RankingRuleOutput { + query: query_graph, + candidates, + score: ScoreDetails::ExactAttribute( + score_details::ExactAttribute::MatchesStart, + ), + }), ) } State::Empty(query_graph) => ( State::Empty(query_graph.clone()), - Some(RankingRuleOutput { query: query_graph, candidates: universe.clone() }), + Some(RankingRuleOutput { + query: query_graph, + candidates: universe.clone(), + score: ScoreDetails::ExactAttribute( + score_details::ExactAttribute::NoExactMatch, + ), + }), ), }; (state, output)