equal
deleted
inserted
replaced
179 try |
179 try |
180 { |
180 { |
181 int32_t startOffset; |
181 int32_t startOffset; |
182 int32_t endOffset; |
182 int32_t endOffset; |
183 int32_t lastEndOffset = 0; |
183 int32_t lastEndOffset = 0; |
|
184 int32_t highlightedfrags = 0; |
184 _textFragmenter->start(text); |
185 _textFragmenter->start(text); |
185 TCHAR substringBuffer[LUCENE_MAX_WORD_LEN]; |
186 TCHAR substringBuffer[LUCENE_MAX_WORD_LEN]; |
186 |
187 |
187 TokenGroup* tokenGroup=_CLNEW TokenGroup(); |
188 TokenGroup* tokenGroup=_CLNEW TokenGroup(); |
188 |
189 |
221 _CLDELETE_CARRAY(markedUpText); |
222 _CLDELETE_CARRAY(markedUpText); |
222 |
223 |
223 //check if current token marks the start of a new fragment |
224 //check if current token marks the start of a new fragment |
224 if (_textFragmenter->isNewFragment(&token)) |
225 if (_textFragmenter->isNewFragment(&token)) |
225 { |
226 { |
226 currentFrag->setScore(_fragmentScorer->getFragmentScore()); |
227 float_t score = _fragmentScorer->getFragmentScore(); |
|
228 if(score > 0) highlightedfrags++; |
|
229 currentFrag->setScore(score); |
227 //record stats for a new fragment |
230 //record stats for a new fragment |
228 currentFrag->setTextEndPos( writeTo->length() ); |
231 currentFrag->setTextEndPos( writeTo->length() ); |
229 currentFrag =_CLNEW TextFragment(writeTo->length(), docFrags.size()); |
232 currentFrag =_CLNEW TextFragment(writeTo->length(), docFrags.size()); |
230 _fragmentScorer->startFragment(currentFrag); |
233 _fragmentScorer->startFragment(currentFrag); |
231 docFrags.push_back(currentFrag); |
234 docFrags.push_back(currentFrag); |
239 //_CLDELETE_CARRAY(highlightedTerm); |
242 //_CLDELETE_CARRAY(highlightedTerm); |
240 //_CLDELETE(token); |
243 //_CLDELETE(token); |
241 |
244 |
242 tokenGroup->addToken(&token,_fragmentScorer->getTokenScore(&token)); |
245 tokenGroup->addToken(&token,_fragmentScorer->getTokenScore(&token)); |
243 |
246 |
244 if(lastEndOffset>maxDocBytesToAnalyze) |
247 if(lastEndOffset>maxDocBytesToAnalyze || highlightedfrags>MAX_FRAGMENTS_TO_HIGHLIGHT) |
245 { |
248 { |
246 break; |
249 break; |
247 } |
250 } |
248 } |
251 } |
249 currentFrag->setScore(_fragmentScorer->getFragmentScore()); |
252 currentFrag->setScore(_fragmentScorer->getFragmentScore()); |
342 frags = _CL_NEWARRAY(TextFragment*,fragTexts.size()+1); |
345 frags = _CL_NEWARRAY(TextFragment*,fragTexts.size()+1); |
343 fragTexts.toArray(frags); |
346 fragTexts.toArray(frags); |
344 } |
347 } |
345 |
348 |
346 _CLDELETE(tokenGroup); |
349 _CLDELETE(tokenGroup); |
|
350 if (tokenStream) |
|
351 { |
|
352 try |
|
353 { |
|
354 tokenStream->close(); |
|
355 } |
|
356 catch (...) |
|
357 { |
|
358 } |
|
359 } |
347 //_CLDELETE(newText); |
360 //_CLDELETE(newText); |
348 return frags; |
361 return frags; |
349 |
362 |
350 } |
363 } |
351 _CLFINALLY( |
364 catch(...){ |
352 if (tokenStream) |
365 if (tokenStream) |
353 { |
366 { |
354 try |
367 try |
355 { |
368 { |
356 tokenStream->close(); |
369 tokenStream->close(); |
357 } |
370 } |
358 catch (...) |
371 catch (...) |
359 { |
372 { |
360 } |
373 } |
361 } |
374 } |
362 ) |
375 return NULL; |
|
376 } |
363 } |
377 } |
364 |
378 |
365 |
379 |
366 void Highlighter::_mergeContiguousFragments(TextFragment** frag, int32_t fragsLen) |
380 void Highlighter::_mergeContiguousFragments(TextFragment** frag, int32_t fragsLen) |
367 { |
381 { |