--- 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;
}