diff options
author | vng <viktor.govako@gmail.com> | 2012-08-21 14:32:43 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:42:00 +0300 |
commit | 8c24fdf04016b109c3cf932fd5b663a54d432d40 (patch) | |
tree | d396f9b1daefc469308fac1bb22cd8c297cbe9cf /indexer | |
parent | 73b11cd8d57388d167c6143301e8183e68b103de (diff) |
[search] Fix scoring routine for matched keywords.
Diffstat (limited to 'indexer')
-rw-r--r-- | indexer/feature.cpp | 9 | ||||
-rw-r--r-- | indexer/feature.hpp | 5 | ||||
-rw-r--r-- | indexer/search_index_builder.cpp | 8 |
3 files changed, 15 insertions, 7 deletions
diff --git a/indexer/feature.cpp b/indexer/feature.cpp index 87b3e6bf8e..dfb406a894 100644 --- a/indexer/feature.cpp +++ b/indexer/feature.cpp @@ -290,6 +290,15 @@ void FeatureType::GetPreferredDrawableNames(string & defaultName, string & intNa } } +bool FeatureType::GetName(int8_t lang, string & name) const +{ + if (!HasName()) + return false; + + ParseCommon(); + return m_Params.name.GetString(lang, name); +} + uint8_t FeatureType::GetRank() const { ParseCommon(); diff --git a/indexer/feature.hpp b/indexer/feature.hpp index c4d2e10b78..31faeb29b2 100644 --- a/indexer/feature.hpp +++ b/indexer/feature.hpp @@ -225,10 +225,7 @@ public: void GetPrefferedNames(string & defaultName, string & intName) const; /// Additional - take into account house number for defaultName void GetPreferredDrawableNames(string & defaultName, string & intName) const; - inline bool GetName(int8_t lang, string & name) const - { - return m_Params.name.GetString(lang, name); - } + bool GetName(int8_t lang, string & name) const; //@} uint8_t GetRank() const; diff --git a/indexer/search_index_builder.cpp b/indexer/search_index_builder.cpp index 204c2f075a..fe52cb5471 100644 --- a/indexer/search_index_builder.cpp +++ b/indexer/search_index_builder.cpp @@ -10,6 +10,8 @@ #include "feature_visibility.hpp" #include "categories_holder.hpp" +#include "../search/search_common.hpp" // for MAX_TOKENS constant + #include "../defines.hpp" #include "../platform/platform.hpp" @@ -47,11 +49,11 @@ struct FeatureNameInserter buffer_vector<strings::UniString, 32> tokens; SplitUniString(uniName, MakeBackInsertFunctor(tokens), search::Delimiters()); - /// @todo MAX_TOKENS = 32, in Query::Search we use 31 + prefix. Why 30 ??? - if (tokens.size() > 30) + int const maxTokensCount = search::MAX_TOKENS - 1; + if (tokens.size() > maxTokensCount) { LOG(LWARNING, ("Name has too many tokens:", name)); - tokens.resize(30); + tokens.resize(maxTokensCount); } for (size_t i = 0; i < tokens.size(); ++i) |