--- 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 13:36:56 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; + //return true; } } } - boolean isNewFrag = token.endOffset() >= (fragmentSize * currentNumFrags); + boolean isNewFrag = token.endOffset() >= (fragmentSize * currentNumFrags) && + (textSize - token.endOffset()) >= (fragmentSize >>> 1); if (isNewFrag) { currentNumFrags++; @@ -91,5 +93,6 @@ public void start(String originalText) { position = 0; currentNumFrags = 1; + textSize = originalText.length(); } }