Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2012-08-21 14:32:43 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:42:00 +0300
commit8c24fdf04016b109c3cf932fd5b663a54d432d40 (patch)
treed396f9b1daefc469308fac1bb22cd8c297cbe9cf /indexer
parent73b11cd8d57388d167c6143301e8183e68b103de (diff)
[search] Fix scoring routine for matched keywords.
Diffstat (limited to 'indexer')
-rw-r--r--indexer/feature.cpp9
-rw-r--r--indexer/feature.hpp5
-rw-r--r--indexer/search_index_builder.cpp8
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)