diff -r cf5c74390b98 -r 3e1f76dd2722 searcher/searchserver/src/ccpixsearch.cpp --- a/searcher/searchserver/src/ccpixsearch.cpp Wed Aug 18 10:53:26 2010 +0300 +++ b/searcher/searchserver/src/ccpixsearch.cpp Thu Sep 02 21:37:32 2010 +0300 @@ -45,7 +45,7 @@ } CCPixSearch::CCPixSearch() - : iQueryParserType(EIncrementalQueryParser), + : iQueryParserType(EPrefixQueryParser), iPendingTask(EPendingTaskNone) { @@ -134,6 +134,8 @@ TBool CCPixSearch::SearchL(const TDesC& aSearchTerms, MCPixAsyncronizerObserver* aObserver, const RMessage2& aMessage) { + _LIT16(KPlain,"$plain"); + _LIT16(KPrefix,"$prefix"); OstTraceFunctionEntry0( CCPIXSEARCH_SEARCHL_ENTRY ); PERFORMANCE_LOG_START("CCPixSearch::SearchL"); @@ -149,6 +151,15 @@ TPtr searchTermsPtr = searchTerms->Des(); searchTermsPtr.Copy(aSearchTerms); + if(aSearchTerms.Find(KPlain) == 0 && iQueryParserType == EPrefixQueryParser ) + { + SetQueryParserL(ECluceneQueryParser); + } + else if (aSearchTerms.Find(KPrefix) == 0 && iQueryParserType == ECluceneQueryParser ) + { + SetQueryParserL(EPrefixQueryParser); + } + // Destroy previous query cpix_Query_destroy( iQuery ); iQuery = NULL; @@ -379,7 +390,7 @@ iQueryParser = NULL; cpix_Result result; - if ( iQueryParserType == EDatabaseQueryParser ) + if ( iQueryParserType == ECluceneQueryParser ) { iQueryParser = cpix_QueryParser_create( &result, @@ -387,7 +398,7 @@ iDefaultSearchFieldZ->Des().PtrZ()), iAnalyzer ); } - else if ( iQueryParserType == EIncrementalQueryParser ) + else if ( iQueryParserType == EPrefixQueryParser ) { iQueryParser = cpix_CreatePrefixQueryParser( &result,