| Index: components/query_parser/query_parser.h
|
| diff --git a/components/query_parser/query_parser.h b/components/query_parser/query_parser.h
|
| index cc3f94b2cf3bc68f3353961b3bbe1c854dfa228d..1da0bbeeebe29a791d47ced6bcc6f94b1a628623 100644
|
| --- a/components/query_parser/query_parser.h
|
| +++ b/components/query_parser/query_parser.h
|
| @@ -76,19 +76,23 @@ class QueryParser {
|
|
|
| // Parse a query into a SQLite query. The resulting query is placed in
|
| // |sqlite_query| and the number of words is returned.
|
| - int ParseQuery(const base::string16& query, base::string16* sqlite_query);
|
| + int ParseQuery(const base::string16& query,
|
| + bool always_prefix_search,
|
| + base::string16* sqlite_query);
|
|
|
| // Parses |query|, returning the words that make up it. Any words in quotes
|
| // are put in |words| without the quotes. For example, the query text
|
| // "foo bar" results in two entries being added to words, one for foo and one
|
| // for bar.
|
| void ParseQueryWords(const base::string16& query,
|
| + bool always_prefix_search,
|
| std::vector<base::string16>* words);
|
|
|
| // Parses |query|, returning the nodes that constitute the valid words in the
|
| // query. This is intended for later usage with DoesQueryMatch. Ownership of
|
| // the nodes passes to the caller.
|
| void ParseQueryNodes(const base::string16& query,
|
| + bool always_prefix_search,
|
| QueryNodeStarVector* nodes);
|
|
|
| // Returns true if the string text matches the query nodes created by a call
|
| @@ -114,7 +118,14 @@ class QueryParser {
|
| private:
|
| // Does the work of parsing |query|; creates nodes in |root| as appropriate.
|
| // This is invoked from both of the ParseQuery methods.
|
| - bool ParseQueryImpl(const base::string16& query, QueryNodeList* root);
|
| + // When |always_search_prefix| is true, no words are short enough for being
|
| + // considered for a prefix search.
|
| + // When |always_search_prefix| is false, only words long enough in terms of
|
| + // |IsWordLongEnoughForPrefixSearch| are considered for prefix search. The
|
| + // shorter words are then only considered for exact matches.
|
| + bool ParseQueryImpl(const base::string16& query,
|
| + bool always_search_prefix,
|
| + QueryNodeList* root);
|
|
|
| DISALLOW_COPY_AND_ASSIGN(QueryParser);
|
| };
|
|
|