From 9605f238c600e88720491df77db69cd6077101fb Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Thu, 2 Apr 2020 12:09:08 +0300 Subject: [PATCH] [search] Use GetRoadShields(rawRoadNumber) when we do not need custom shield styles. --- generator/search_index_builder.cpp | 8 +++----- indexer/road_shields_parser.cpp | 8 ++------ search/ranker.cpp | 7 +++---- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/generator/search_index_builder.cpp b/generator/search_index_builder.cpp index 10692d7575..bf15531086 100644 --- a/generator/search_index_builder.cpp +++ b/generator/search_index_builder.cpp @@ -18,7 +18,6 @@ #include "indexer/features_vector.hpp" #include "indexer/ftypes_matcher.hpp" #include "indexer/postcodes_matcher.hpp" -#include "indexer/road_shields_parser.hpp" #include "indexer/search_delimiters.hpp" #include "indexer/search_string_utils.hpp" #include "indexer/trie_builder.hpp" @@ -323,11 +322,10 @@ public: return; // Road number. - if (hasStreetType && !f.GetRoadNumber().empty()) + if (hasStreetType) { - auto const shields = ftypes::GetRoadShields(f); - for (auto const & shield : shields) - inserter(StringUtf8Multilang::kDefaultCode, shield.m_name); + for (auto const & shield : feature::GetRoadShieldsNames(f.GetRoadNumber())) + inserter(StringUtf8Multilang::kDefaultCode, shield); } if (ftypes::IsAirportChecker::Instance()(types)) diff --git a/indexer/road_shields_parser.cpp b/indexer/road_shields_parser.cpp index 06ef82b62a..e8ee0c52c1 100644 --- a/indexer/road_shields_parser.cpp +++ b/indexer/road_shields_parser.cpp @@ -538,12 +538,8 @@ std::set GetRoadShields(FeatureType & f) // Find out country name. std::string mwmName = f.GetID().GetMwmName(); - // |mwmName| may be empty when GetRoadShields is called from generator. - if (mwmName == FeatureID::kInvalidFileName) - { - return SimpleRoadShieldParser(roadNumber, SimpleRoadShieldParser::ShieldTypes()) - .GetRoadShields(); - } + ASSERT_NOT_EQUAL(mwmName, FeatureID::kInvalidFileName, + ("Use GetRoadShields(rawRoadNumber) for unknown mwms.")); auto const underlinePos = mwmName.find('_'); if (underlinePos != std::string::npos) diff --git a/search/ranker.cpp b/search/ranker.cpp index bff6ad5877..9f90942fa8 100644 --- a/search/ranker.cpp +++ b/search/ranker.cpp @@ -14,8 +14,8 @@ #include "indexer/brands_holder.hpp" #include "indexer/data_source.hpp" #include "indexer/feature_algo.hpp" +#include "indexer/feature_utils.hpp" #include "indexer/ftypes_matcher.hpp" -#include "indexer/road_shields_parser.hpp" #include "indexer/search_string_utils.hpp" #include "coding/string_utf8_multilang.hpp" @@ -147,9 +147,8 @@ pair GetNameScores(FeatureType & ft, Geocoder::Params const if (type == Model::TYPE_STREET) { - auto const shields = ftypes::GetRoadShields(ft); - for (auto const & shield : shields) - UpdateNameScores(shield.m_name, sliceNoCategories, bestScores); + for (auto const & shield : feature::GetRoadShieldsNames(ft.GetRoadNumber())) + UpdateNameScores(shield, sliceNoCategories, bestScores); } return make_pair(bestScores, matchedLength);