From 92bd617f28d8903d2086d16678fe540a65861831 Mon Sep 17 00:00:00 2001 From: vng Date: Tue, 11 Oct 2011 14:04:13 +0300 Subject: [PATCH] Clear previous tokens before new search query. --- search/search_query.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/search/search_query.cpp b/search/search_query.cpp index 4b32d096ad..4ba9909ee3 100644 --- a/search/search_query.cpp +++ b/search/search_query.cpp @@ -107,9 +107,11 @@ void Query::Search(string const & query, { m_rawQuery = query; m_uniQuery = NormalizeAndSimplifyString(m_rawQuery); + m_tokens.clear(); search::Delimiters delims; SplitUniString(m_uniQuery, MakeBackInsertFunctor(m_tokens), delims); + if (!m_tokens.empty() && !delims(strings::LastUniChar(m_rawQuery))) { m_prefix.swap(m_tokens.back()); @@ -118,7 +120,7 @@ void Query::Search(string const & query, if (m_tokens.size() > 31) m_tokens.resize(31); - m_pKeywordMatcher.reset(new KeywordMatcher(m_tokens.data(), (int)m_tokens.size(), &m_prefix)); + m_pKeywordMatcher.reset(new KeywordMatcher(m_tokens.data(), m_tokens.size(), &m_prefix)); m_results = my::limited_priority_queue(resultsNeeded); }