From 9c7dfb9cc34b62d3b44b18a6acb674c38e518ecd Mon Sep 17 00:00:00 2001 From: Maxim Pimenov Date: Tue, 9 Jul 2019 17:54:45 +0300 Subject: [PATCH] [search] Replaced Token's ForEach with a more descriptive ForEachSynonym. --- search/bookmarks/processor.hpp | 13 ++++++------- search/feature_offset_match.hpp | 2 +- search/geocoder.cpp | 4 ++-- search/locality_scorer.cpp | 4 ++-- search/query_params.cpp | 2 +- search/query_params.hpp | 6 +++--- search/ranker.cpp | 2 +- search/ranking_utils.cpp | 4 ++-- search/ranking_utils.hpp | 2 +- search/search_tests/locality_scorer_test.cpp | 7 ++++--- 10 files changed, 23 insertions(+), 23 deletions(-) diff --git a/search/bookmarks/processor.hpp b/search/bookmarks/processor.hpp index 5141472030..7bcc763402 100644 --- a/search/bookmarks/processor.hpp +++ b/search/bookmarks/processor.hpp @@ -51,15 +51,14 @@ private: void Retrieve(QueryParams::Token const & token, Fn && fn) const { SearchTrieRequest request; - token.ForEach([&request](strings::UniString const & s) - { - request.m_names.emplace_back(BuildLevenshteinDFA(s)); - }); + token.ForEachSynonym([&request](strings::UniString const & s) { + request.m_names.emplace_back(BuildLevenshteinDFA(s)); + }); request.m_langs.insert(StringUtf8Multilang::kDefaultCode); - MatchFeaturesInTrie(request, m_index.GetRootIterator(), - [](Id const & /* id */) { return true; } /* filter */, - std::forward(fn)); + MatchFeaturesInTrie( + request, m_index.GetRootIterator(), [](Id const & /* id */) { return true; } /* filter */, + std::forward(fn)); } QueryVec GetQueryVec(IdfMap & idfs, QueryParams const & params) const; diff --git a/search/feature_offset_match.hpp b/search/feature_offset_match.hpp index 961102725a..5ac0bb6ca3 100644 --- a/search/feature_offset_match.hpp +++ b/search/feature_offset_match.hpp @@ -334,7 +334,7 @@ void MatchPostcodesInTrie(TokenSlice const & slice, trie::Iterator co // 2. For prefix match query like "streetname 40" where |streetname| is located in 40xxx // postcode zone will give all street vicinity as the result which is wrong. std::vector dfas; - slice.Get(i).ForEach([&dfas](UniString const & s) { dfas.emplace_back(s); }); + slice.Get(i).ForEachSynonym([&dfas](UniString const & s) { dfas.emplace_back(s); }); MatchInTrie(dfas, TrieRootPrefix(*postcodesRoot, edge), intersector); intersector.NextStep(); diff --git a/search/geocoder.cpp b/search/geocoder.cpp index 77d0c2f188..bcd6b2821f 100644 --- a/search/geocoder.cpp +++ b/search/geocoder.cpp @@ -366,7 +366,7 @@ void Geocoder::SetParams(Params const & params) { m_tokenRequests.emplace_back(); auto & request = m_tokenRequests.back(); - m_params.GetToken(i).ForEach([&request](UniString const & s) { + m_params.GetToken(i).ForEachSynonym([&request](UniString const & s) { request.m_names.emplace_back(BuildLevenshteinDFA(s)); }); for (auto const & index : m_params.GetTypeIndices(i)) @@ -376,7 +376,7 @@ void Geocoder::SetParams(Params const & params) else { auto & request = m_prefixTokenRequest; - m_params.GetToken(i).ForEach([&request](UniString const & s) { + m_params.GetToken(i).ForEachSynonym([&request](UniString const & s) { request.m_names.emplace_back(BuildLevenshteinDFA(s)); }); for (auto const & index : m_params.GetTypeIndices(i)) diff --git a/search/locality_scorer.cpp b/search/locality_scorer.cpp index 409c85f062..50debcb535 100644 --- a/search/locality_scorer.cpp +++ b/search/locality_scorer.cpp @@ -103,7 +103,7 @@ void LocalityScorer::GetTopLocalities(MwmSet::MwmId const & countryId, BaseConte auto const df = intersections.back().m_features.PopCount(); if (df != 0) { - m_params.GetToken(i).ForEach([&tokensToDf, &df](UniString const & s) { + m_params.GetToken(i).ForEachSynonym([&tokensToDf, &df](UniString const & s) { tokensToDf.emplace_back(BuildLevenshteinDFA(s), df); }); } @@ -116,7 +116,7 @@ void LocalityScorer::GetTopLocalities(MwmSet::MwmId const & countryId, BaseConte auto const prefixDf = intersections.back().m_features.PopCount(); if (prefixDf != 0) { - m_params.GetToken(count).ForEach([&prefixToDf, &prefixDf](UniString const & s) { + m_params.GetToken(count).ForEachSynonym([&prefixToDf, &prefixDf](UniString const & s) { prefixToDf.emplace_back(PrefixDFAModifier(BuildLevenshteinDFA(s)), prefixDf); }); diff --git a/search/query_params.cpp b/search/query_params.cpp index abbb857296..e174453ae6 100644 --- a/search/query_params.cpp +++ b/search/query_params.cpp @@ -103,7 +103,7 @@ bool QueryParams::IsNumberTokens(TokenRange const & range) const for (size_t i : range) { bool number = false; - GetToken(i).ForEach([&number](String const & s) { + GetToken(i).ForEachSynonym([&number](String const & s) { if (feature::IsNumber(s)) { number = true; diff --git a/search/query_params.hpp b/search/query_params.hpp index a96d814fb3..6d91f1c128 100644 --- a/search/query_params.hpp +++ b/search/query_params.hpp @@ -38,7 +38,7 @@ public: // Calls |fn| on the original token and on synonyms. template - std::enable_if_t, void>::value> ForEach( + std::enable_if_t, void>::value> ForEachSynonym( Fn && fn) const { fn(m_original); @@ -47,7 +47,7 @@ public: // Calls |fn| on the original token and on synonyms until |fn| return false. template - std::enable_if_t, bool>::value> ForEach( + std::enable_if_t, bool>::value> ForEachSynonym( Fn && fn) const { if (!fn(m_original)) @@ -60,7 +60,7 @@ public: } template - std::enable_if_t, bool>::value, bool> AnyOf( + std::enable_if_t, bool>::value, bool> AnyOfSynonyms( Fn && fn) const { if (fn(m_original)) diff --git a/search/ranker.cpp b/search/ranker.cpp index 9f489e099c..74fbf02530 100644 --- a/search/ranker.cpp +++ b/search/ranker.cpp @@ -156,7 +156,7 @@ pair MatchTokenRange(FeatureType & ft, Geocoder::Params cons for (auto const token : range) { ErrorsMade tokenErrors; - params.GetToken(token).ForEach([&](strings::UniString const & s) { + params.GetToken(token).ForEachSynonym([&](strings::UniString const & s) { tokenErrors = ErrorsMade::Max(tokenErrors, ErrorsMade{GetMaxErrorsForToken(s)}); }); errorsMade += tokenErrors; diff --git a/search/ranking_utils.cpp b/search/ranking_utils.cpp index 6e379ba0b1..ae94cf9ff2 100644 --- a/search/ranking_utils.cpp +++ b/search/ranking_utils.cpp @@ -70,12 +70,12 @@ namespace impl { bool FullMatch(QueryParams::Token const & token, UniString const & text) { - return token.AnyOf([&text](UniString const & s) { return s == text; }); + return token.AnyOfSynonyms([&text](UniString const & s) { return s == text; }); } bool PrefixMatch(QueryParams::Token const & token, UniString const & text) { - return token.AnyOf([&text](UniString const & s) { return StartsWith(text, s); }); + return token.AnyOfSynonyms([&text](UniString const & s) { return StartsWith(text, s); }); } ErrorsMade GetMinErrorsMade(vector const & tokens, diff --git a/search/ranking_utils.hpp b/search/ranking_utils.hpp index 82eaa610b3..19ff21c6fe 100644 --- a/search/ranking_utils.hpp +++ b/search/ranking_utils.hpp @@ -186,7 +186,7 @@ ErrorsMade GetErrorsMade(std::vector const & tokens, Slice c for (size_t i = 0; i < slice.Size(); ++i) { ErrorsMade errorsMade; - slice.Get(i).ForEach([&](strings::UniString const & s) { + slice.Get(i).ForEachSynonym([&](strings::UniString const & s) { errorsMade = ErrorsMade::Min(errorsMade, impl::GetMinErrorsMade(tokens, s)); }); diff --git a/search/search_tests/locality_scorer_test.cpp b/search/search_tests/locality_scorer_test.cpp index 8444195069..f12548bc44 100644 --- a/search/search_tests/locality_scorer_test.cpp +++ b/search/search_tests/locality_scorer_test.cpp @@ -78,17 +78,18 @@ public: bool const isPrefixToken = m_params.IsPrefixToken(i); vector ids; - token.ForEach([&](UniString const & name) { + token.ForEachSynonym([&](UniString const & synonym) { if (isPrefixToken) { - m_searchIndex.ForEachInSubtree(name, + m_searchIndex.ForEachInSubtree(synonym, [&](UniString const & /* prefix */, uint32_t featureId) { ids.push_back(featureId); }); } else { - m_searchIndex.ForEachInNode(name, [&](uint32_t featureId) { ids.push_back(featureId); }); + m_searchIndex.ForEachInNode(synonym, + [&](uint32_t featureId) { ids.push_back(featureId); }); } });