| --- C:\libraries\lucene-2.3.2-src-highlighter\contrib\highlighter\src\java\org\apache\lucene\search\highlight\SimpleSpanFragmenter.old Wed Sep 17 09:50:08 2008
|
| +++ C:\libraries\lucene-2.3.2-src-highlighter\contrib\highlighter\src\java\org\apache\lucene\search\highlight\SimpleSpanFragmenter.java Wed Sep 17 15:10:36 2008
|
| @@ -33,7 +33,8 @@
|
| private int position = -1; |
| private SpanScorer spanScorer; |
| private int waitForPos = -1; |
| - |
| + private int textSize; |
| + |
| /** |
| * @param spanscorer SpanScorer that was used to score hits |
| */ |
| @@ -71,12 +72,13 @@
|
| if (((PositionSpan) positionSpans.get(i)).start == position) { |
| waitForPos = ((PositionSpan) positionSpans.get(i)).end + 1; |
| |
| - return true; |
| + break; |
| } |
| } |
| } |
| |
| - boolean isNewFrag = token.endOffset() >= (fragmentSize * currentNumFrags); |
| + boolean isNewFrag = token.endOffset() >= (fragmentSize * currentNumFrags) && |
| + (textSize - token.endOffset()) >= (fragmentSize >>> 1); |
| |
| if (isNewFrag) { |
| currentNumFrags++; |
| @@ -89,7 +91,8 @@
|
| * @see org.apache.lucene.search.highlight.Fragmenter#start(java.lang.String) |
| */ |
| public void start(String originalText) { |
| - position = 0; |
| + position = -1; |
| currentNumFrags = 1; |
| + textSize = originalText.length(); |
| } |
| } |