blob: e16eb02f063432e075188f0ca8883a996f82928c [file] [log] [blame]
--- 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();
}
}