Class LengthGoalBreakIterator
java.lang.Object
java.text.BreakIterator
org.apache.lucene.search.uhighlight.LengthGoalBreakIterator
- All Implemented Interfaces:
Cloneable
Wraps another
BreakIterator
to skip past breaks that would result in passages that are
too short. It's still possible to get a short passage but only at the very end of the input text.
Important: This is not a general purpose BreakIterator
; it's only designed to work in
a way compatible with the UnifiedHighlighter
. Some assumptions are checked with Java
assertions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BreakIterator
private int
private final float
private final boolean
private final int
Fields inherited from class java.text.BreakIterator
DONE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
LengthGoalBreakIterator
(BreakIterator baseIter, int lengthGoal, float fragmentAlignment, boolean isMinimumLength, int currentCache) -
Method Summary
Modifier and TypeMethodDescriptionclone()
static LengthGoalBreakIterator
createClosestToLength
(BreakIterator baseIter, int targetLength, float fragmentAlignment) Breaks will be on averagetargetLength
apart; the closest break to this target (before or after) is chosen.static LengthGoalBreakIterator
createMinLength
(BreakIterator baseIter, int minLength, float fragmentAlignment) Breaks will be at leastminLength
apart (to the extent possible), while trying to position the match inside the fragment according tofragmentAlignment
.int
current()
int
first()
int
following
(int matchEndIndex) private int
following
(int matchEndIndex, int targetIdx) getText()
boolean
isBoundary
(int offset) int
last()
int
next()
int
next
(int n) int
preceding
(int matchStartIndex) int
previous()
void
void
setText
(CharacterIterator newText) toString()
Methods inherited from class java.text.BreakIterator
getAvailableLocales, getCharacterInstance, getCharacterInstance, getLineInstance, getLineInstance, getSentenceInstance, getSentenceInstance, getWordInstance, getWordInstance
-
Field Details
-
baseIter
-
lengthGoal
private final int lengthGoal -
fragmentAlignment
private final float fragmentAlignment -
isMinimumLength
private final boolean isMinimumLength -
currentCache
private int currentCache
-
-
Constructor Details
-
LengthGoalBreakIterator
private LengthGoalBreakIterator(BreakIterator baseIter, int lengthGoal, float fragmentAlignment, boolean isMinimumLength, int currentCache)
-
-
Method Details
-
createMinLength
public static LengthGoalBreakIterator createMinLength(BreakIterator baseIter, int minLength, float fragmentAlignment) Breaks will be at leastminLength
apart (to the extent possible), while trying to position the match inside the fragment according tofragmentAlignment
. -
createClosestToLength
public static LengthGoalBreakIterator createClosestToLength(BreakIterator baseIter, int targetLength, float fragmentAlignment) Breaks will be on averagetargetLength
apart; the closest break to this target (before or after) is chosen. The match will be positioned according tofragmentAlignment
as much as possible. -
toString
-
clone
- Overrides:
clone
in classBreakIterator
-
getText
- Specified by:
getText
in classBreakIterator
-
setText
- Overrides:
setText
in classBreakIterator
-
setText
- Specified by:
setText
in classBreakIterator
-
current
public int current()- Specified by:
current
in classBreakIterator
-
first
public int first()- Specified by:
first
in classBreakIterator
-
last
public int last()- Specified by:
last
in classBreakIterator
-
next
public int next(int n) - Specified by:
next
in classBreakIterator
-
next
public int next()- Specified by:
next
in classBreakIterator
-
previous
public int previous()- Specified by:
previous
in classBreakIterator
-
following
public int following(int matchEndIndex) - Specified by:
following
in classBreakIterator
-
following
private int following(int matchEndIndex, int targetIdx) -
preceding
public int preceding(int matchStartIndex) - Overrides:
preceding
in classBreakIterator
-
isBoundary
public boolean isBoundary(int offset) - Overrides:
isBoundary
in classBreakIterator
-