From 526d819387fd6cd6b69a2de3ff456574103b7a61 Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Thu, 20 Jun 2019 11:15:37 +0300 Subject: [PATCH] [search] Set RankingInfo::m_hasName to true for features with brand or operator. --- search/ranker.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/search/ranker.cpp b/search/ranker.cpp index 9a9d2c502d..feed8d3b27 100644 --- a/search/ranker.cpp +++ b/search/ranker.cpp @@ -313,10 +313,20 @@ class RankerResultMaker info.m_allTokensUsed = preInfo.m_allTokensUsed; info.m_exactMatch = preInfo.m_exactMatch; info.m_categorialRequest = m_params.IsCategorialRequest(); - info.m_hasName = ft.HasName(); - // We do not compare result name and request for categorial requests. - if (!m_params.IsCategorialRequest()) + // We do not compare result name and request for categorial requests but we prefer named + // features. + if (m_params.IsCategorialRequest()) + { + info.m_hasName = ft.HasName(); + if (!info.m_hasName) + { + auto const & meta = ft.GetMetadata(); + info.m_hasName = + meta.Has(feature::Metadata::FMD_OPERATOR) || meta.Has(feature::Metadata::FMD_BRAND); + } + } + else { auto const nameScores = GetNameScores(ft, m_params, preInfo.InnermostTokenRange(), info.m_type);