searchengine/oss/cl/clucene/src/clucene/highlighter/Highlighter.cpp
changeset 21 2c484ac32ef0
parent 10 afe194b6b1cd
--- a/searchengine/oss/cl/clucene/src/clucene/highlighter/Highlighter.cpp	Thu Sep 02 21:37:32 2010 +0300
+++ b/searchengine/oss/cl/clucene/src/clucene/highlighter/Highlighter.cpp	Fri Sep 17 08:35:54 2010 +0300
@@ -181,6 +181,7 @@
 			int32_t startOffset;
 			int32_t endOffset;
 			int32_t lastEndOffset = 0;
+			int32_t highlightedfrags = 0;
 			_textFragmenter->start(text);
 			TCHAR substringBuffer[LUCENE_MAX_WORD_LEN];
 
@@ -223,7 +224,9 @@
 					//check if current token marks the start of a new fragment
 					if (_textFragmenter->isNewFragment(&token))
 					{
-						currentFrag->setScore(_fragmentScorer->getFragmentScore());
+					    float_t score = _fragmentScorer->getFragmentScore();
+					    if(score > 0) highlightedfrags++;
+						currentFrag->setScore(score);
 						//record stats for a new fragment
 						currentFrag->setTextEndPos( writeTo->length() );
 						currentFrag =_CLNEW TextFragment(writeTo->length(), docFrags.size());
@@ -241,7 +244,7 @@
 
 				tokenGroup->addToken(&token,_fragmentScorer->getTokenScore(&token));
 
-				if(lastEndOffset>maxDocBytesToAnalyze)
+				if(lastEndOffset>maxDocBytesToAnalyze || highlightedfrags>MAX_FRAGMENTS_TO_HIGHLIGHT)
 				{
 					break;
 				}