From db5716007bc3e73dd7136e18579eac79d53f6ad5 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 9 Aug 2017 19:07:38 +0300 Subject: [PATCH] [search] Cian support in search index. --- data/minsk-pass.mwm | Bin 350960 -> 359452 bytes search/model.cpp | 1 - .../processor_test.cpp | 6 ++++-- search/types_skipper.hpp | 18 +++++++++++++++++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/data/minsk-pass.mwm b/data/minsk-pass.mwm index 276ad7fa3cb394d647c75e17b6be81acd7fb295e..50c4ed49295a5fe824b94e5db68d901322aa5f2d 100644 GIT binary patch delta 15504 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 delta 10334 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 return string(); } - } // namespace search diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index 0ede3f583d..55a03a553f 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -922,12 +922,14 @@ UNIT_CLASS_TEST(ProcessorTest, Cian) TestBuilding plainBuilding(m2::PointD(0, 0), "Plain building", "1", "en"); TestBuilding garage(m2::PointD(0.001, 0.001), "Garage", "2", "en"); garage.AddType({"building", "garage"}); + TestBuilding nonameBuilding(m2::PointD(0.002, 0.002), "", "3", "en"); auto worldId = BuildWorld([&](TestMwmBuilder & builder) { builder.Add(cianCity); }); auto countryId = BuildCountry(countryName, [&](TestMwmBuilder & builder) { builder.Add(plainBuilding); builder.Add(garage); + builder.Add(nonameBuilding); }); SetViewport(m2::RectD(m2::PointD(-1.0, -1.0), m2::PointD(1.0, 1.0))); @@ -941,13 +943,13 @@ UNIT_CLASS_TEST(ProcessorTest, Cian) params.m_cianMode = false; { TRules rules = {ExactMatch(worldId, cianCity), ExactMatch(countryId, plainBuilding), - ExactMatch(countryId, garage)}; + ExactMatch(countryId, garage), ExactMatch(countryId, nonameBuilding)}; TEST(ResultsMatch(params, rules), ()); } params.m_cianMode = true; { - TRules rules = {ExactMatch(countryId, plainBuilding)}; + TRules rules = {ExactMatch(countryId, plainBuilding), ExactMatch(countryId, nonameBuilding)}; TEST(ResultsMatch(params, rules), ()); } } diff --git a/search/types_skipper.hpp b/search/types_skipper.hpp index 3a234d1792..935423f72c 100644 --- a/search/types_skipper.hpp +++ b/search/types_skipper.hpp @@ -2,6 +2,8 @@ #include "search/model.hpp" +#include "indexer/ftypes_matcher.hpp" + #include "base/buffer_vector.hpp" namespace search @@ -21,6 +23,20 @@ public: bool IsCountryOrState(feature::TypesHolder const & types) const; private: + class DontSkipIfEmptyName + { + public: + bool IsMatched(uint32_t type) const + { + // This is needed for Cian support. + auto const & buildingChecker = ftypes::IsBuildingChecker::Instance(); + return m_poiChecker.IsMatched(type) || buildingChecker.IsMatched(type); + } + + private: + TwoLevelPOIChecker m_poiChecker; + }; + using TCont = buffer_vector; static bool HasType(TCont const & v, uint32_t t); @@ -31,7 +47,7 @@ private: // m_skipIfEmptyName and m_dontSkipIfEmptyName are used in the case 2 described above. TCont m_skipIfEmptyName[2]; - TwoLevelPOIChecker m_dontSkipIfEmptyName; + DontSkipIfEmptyName m_dontSkipIfEmptyName; uint32_t m_country, m_state; };