diff --git a/geocoder/index.cpp b/geocoder/index.cpp index 21b30be043..acf9b1e5e6 100644 --- a/geocoder/index.cpp +++ b/geocoder/index.cpp @@ -8,6 +8,7 @@ #include "base/logging.hpp" #include "base/string_utils.hpp" +#include #include #include #include @@ -43,7 +44,12 @@ Index::Doc const & Index::GetDoc(DocId const id) const // static string Index::MakeIndexKey(Tokens const & tokens) { - return strings::JoinStrings(tokens, " "); + if (tokens.size() == 1 || std::is_sorted(begin(tokens), end(tokens))) + return strings::JoinStrings(tokens, " "); + + auto indexTokens = tokens; + std::sort(begin(indexTokens), end(indexTokens)); + return strings::JoinStrings(indexTokens, " "); } void Index::AddEntries()