From c96b27fb33462c008b3235beb4f3871e63461c4d Mon Sep 17 00:00:00 2001 From: vng Date: Wed, 14 Dec 2011 21:27:11 +0300 Subject: [PATCH] [search] Fix feature names scoring for results. --- search/lang_keywords_scorer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/search/lang_keywords_scorer.cpp b/search/lang_keywords_scorer.cpp index 3999212b92..db412168df 100644 --- a/search/lang_keywords_scorer.cpp +++ b/search/lang_keywords_scorer.cpp @@ -31,12 +31,16 @@ uint32_t LangKeywordsScorer::Score(int8_t lang, strings::UniString const * tokens, int tokenCount) const { uint32_t const keywordScore = m_keywordMatcher.Score(tokens, tokenCount); + if (keywordScore == KeywordMatcher::MAX_SCORE) + return MAX_SCORE; // TODO: Differentiate between langs with MAX_SCORE score. + for (uint32_t i = 0; i < NUM_LANG_PRIORITY_TIERS; ++i) for (uint32_t j = 0; j < m_languagePriorities[i].size(); ++j) if (m_languagePriorities[i][j] == lang) return i * KeywordMatcher::MAX_SCORE * (MAX_LANGS_IN_TIER + 1) + keywordScore * (MAX_LANGS_IN_TIER + 1) + min(j, static_cast(MAX_LANGS_IN_TIER)); + return NUM_LANG_PRIORITY_TIERS * KeywordMatcher::MAX_SCORE * (MAX_LANGS_IN_TIER + 1) + keywordScore * (MAX_LANGS_IN_TIER + 1); }