From 6bf40820d5bc0bc55d45333270533041bca6f2c1 Mon Sep 17 00:00:00 2001 From: Yuri Gorshenin Date: Thu, 10 Aug 2017 14:00:26 +0300 Subject: [PATCH] [search] Skip named buildings in Cian search mode. --- map/framework.cpp | 15 +++++++++------ search/model.cpp | 2 +- .../search_integration_tests/processor_test.cpp | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index df3279be0a..b7b0b048e3 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -197,6 +197,13 @@ string MakeSearchBookingUrl(booking::Api const & bookingApi, search::CityFinder return bookingApi.GetSearchUrl(city, name); } + +bool IsCianMode(string query) +{ + strings::Trim(query); + strings::AsciiToLower(query); + return query == "cian"; +} } // namespace pair Framework::RegisterMap( @@ -1303,6 +1310,7 @@ bool Framework::SearchEverywhere(search::EverywhereSearchParams const & params) p.m_forceSearch = true; p.m_suggestsEnabled = true; p.m_hotelsFilter = params.m_hotelsFilter; + p.m_cianMode = IsCianMode(params.m_query); p.m_onResults = search::EverywhereSearchCallback( static_cast(*this), @@ -1319,12 +1327,7 @@ bool Framework::SearchEverywhere(search::EverywhereSearchParams const & params) bool Framework::SearchInViewport(search::ViewportSearchParams const & params) { // TODO: delete me after Cian project is finished. - { - std::string query = params.m_query; - strings::Trim(query); - strings::AsciiToLower(query); - m_cianSearchMode = (query == "cian"); - } + m_cianSearchMode = IsCianMode(params.m_query); search::SearchParams p; p.m_query = params.m_query; diff --git a/search/model.cpp b/search/model.cpp index 87099f5834..e402255bf5 100644 --- a/search/model.cpp +++ b/search/model.cpp @@ -89,7 +89,7 @@ public: bool operator()(FeatureType const & ft) const { feature::TypesHolder th(ft); - return th.Size() == 1 && th.Has(m_type); + return !ft.HasName() && th.Size() == 1 && th.Has(m_type); } private: diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index 55a03a553f..d04f5ac266 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -949,7 +949,7 @@ UNIT_CLASS_TEST(ProcessorTest, Cian) params.m_cianMode = true; { - TRules rules = {ExactMatch(countryId, plainBuilding), ExactMatch(countryId, nonameBuilding)}; + TRules rules = {ExactMatch(countryId, nonameBuilding)}; TEST(ResultsMatch(params, rules), ()); } }