searchengine/oss/cl/clucene/src/clucene/highlighter/QueryTermExtractor.cpp
changeset 24 65456528cac2
parent 7 a5fbfefd615f
equal deleted inserted replaced
23:d4d56f5e7c55 24:65456528cac2
    28 			getTermsFromBooleanQuery((BooleanQuery *) query, terms, prohibited);
    28 			getTermsFromBooleanQuery((BooleanQuery *) query, terms, prohibited);
    29 		else if (query->instanceOf( PhraseQuery::getClassName() ))
    29 		else if (query->instanceOf( PhraseQuery::getClassName() ))
    30 			getTermsFromPhraseQuery((PhraseQuery *) query, terms);
    30 			getTermsFromPhraseQuery((PhraseQuery *) query, terms);
    31 		else if (query->instanceOf( TermQuery::getClassName() ))
    31 		else if (query->instanceOf( TermQuery::getClassName() ))
    32 			getTermsFromTermQuery((TermQuery *) query, terms);
    32 			getTermsFromTermQuery((TermQuery *) query, terms);
       
    33 		// Adding support for prefix Query to have direct comparision of Query text
       
    34 		else if (query->instanceOf( PrefixQuery::getClassName() ))
       
    35 			getTermsFromPrefixQuery((PrefixQuery *) query, terms);
    33 		//else if(query->instanceOf(_T("SpanNearQuery"))
    36 		//else if(query->instanceOf(_T("SpanNearQuery"))
    34 		//	getTermsFromSpanNearQuery((SpanNearQuery*) query, terms);
    37 		//	getTermsFromSpanNearQuery((SpanNearQuery*) query, terms);
    35 	}
    38 	}
    36 
    39 
    37 	/**
    40 	/**
   119 			terms->insert(pWT);
   122 			terms->insert(pWT);
   120 		else
   123 		else
   121 			_CLDELETE(pWT);
   124 			_CLDELETE(pWT);
   122 	}
   125 	}
   123 
   126 
       
   127                              
       
   128 	void QueryTermExtractor::getTermsFromPrefixQuery( PrefixQuery * query, WeightedTermList * terms)
       
   129 	{
       
   130 		Term *term =  query->getPrefix();
       
   131 		WeightedTerm * pWT = _CLNEW WeightedTerm(query->getBoost(),term->text());
       
   132 		_CLDECDELETE(term);
       
   133 		if (terms->find(pWT)==terms->end()) // possible memory leak if key already present
       
   134 			terms->insert(pWT);
       
   135 		else
       
   136 			_CLDELETE(pWT);
       
   137 	}
       
   138 
   124 	//todo: implement this when span queries are implemented
   139 	//todo: implement this when span queries are implemented
   125 	/*void getTermsFromSpanNearQuery(SpanNearQuery* query, WeightedTermList* terms){
   140 	/*void getTermsFromSpanNearQuery(SpanNearQuery* query, WeightedTermList* terms){
   126   	    Collection queryTerms = query.getTerms();
   141   	    Collection queryTerms = query.getTerms();
   127 
   142 
   128   	    for(Iterator iterator = queryTerms.iterator(); iterator.hasNext();){
   143   	    for(Iterator iterator = queryTerms.iterator(); iterator.hasNext();){