Class UnifiedHighlighter.Builder
- java.lang.Object
-
- org.apache.lucene.search.uhighlight.UnifiedHighlighter.Builder
-
- Enclosing class:
- UnifiedHighlighter
public static class UnifiedHighlighter.Builder extends java.lang.Object
Builder for UnifiedHighlighter.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.function.Supplier<java.text.BreakIterator>
breakIterator
BreakIterator is stateful so we use a Supplier factory method.private int
cacheFieldValCharsThreshold
private java.util.function.Predicate<java.lang.String>
fieldMatcher
private java.util.Set<UnifiedHighlighter.HighlightFlag>
flags
private PassageFormatter
formatter
private boolean
handleMultiTermQuery
private boolean
highlightPhrasesStrictly
private Analyzer
indexAnalyzer
private int
maxLength
private int
maxNoHighlightPassages
private boolean
passageRelevancyOverSpeed
private PassageScorer
scorer
private IndexSearcher
searcher
If null, can only use highlightWithoutSearcher.private boolean
weightMatches
-
Constructor Summary
Constructors Constructor Description Builder(IndexSearcher searcher, Analyzer indexAnalyzer)
Constructor for UH builder which acceptsIndexSearcher
andAnalyzer
objects.
-
Method Summary
-
-
-
Field Detail
-
searcher
private final IndexSearcher searcher
If null, can only use highlightWithoutSearcher.
-
indexAnalyzer
private final Analyzer indexAnalyzer
-
fieldMatcher
private java.util.function.Predicate<java.lang.String> fieldMatcher
-
flags
private java.util.Set<UnifiedHighlighter.HighlightFlag> flags
-
handleMultiTermQuery
private boolean handleMultiTermQuery
-
highlightPhrasesStrictly
private boolean highlightPhrasesStrictly
-
passageRelevancyOverSpeed
private boolean passageRelevancyOverSpeed
-
weightMatches
private boolean weightMatches
-
maxLength
private int maxLength
-
breakIterator
private java.util.function.Supplier<java.text.BreakIterator> breakIterator
BreakIterator is stateful so we use a Supplier factory method.
-
scorer
private PassageScorer scorer
-
formatter
private PassageFormatter formatter
-
maxNoHighlightPassages
private int maxNoHighlightPassages
-
cacheFieldValCharsThreshold
private int cacheFieldValCharsThreshold
-
-
Constructor Detail
-
Builder
public Builder(IndexSearcher searcher, Analyzer indexAnalyzer)
Constructor for UH builder which acceptsIndexSearcher
andAnalyzer
objects.IndexSearcher
object can only be null whenUnifiedHighlighter.highlightWithoutSearcher(String, Query, String, int)
is used.- Parameters:
searcher
- -IndexSearcher
indexAnalyzer
- -Analyzer
-
-
Method Detail
-
withFlags
public UnifiedHighlighter.Builder withFlags(java.util.Set<UnifiedHighlighter.HighlightFlag> values)
User-defined set ofUnifiedHighlighter.HighlightFlag
values which will override the flags set bywithHandleMultiTermQuery(boolean)
,withHighlightPhrasesStrictly(boolean)
,withPassageRelevancyOverSpeed(boolean)
andwithWeightMatches(boolean)
.Here the user can either specify the set of
UnifiedHighlighter.HighlightFlag
s to be applied or use the boolean flags to populate final list ofUnifiedHighlighter.HighlightFlag
s.- Parameters:
values
- - set ofUnifiedHighlighter.HighlightFlag
values.
-
withHighlightPhrasesStrictly
public UnifiedHighlighter.Builder withHighlightPhrasesStrictly(boolean value)
Here position sensitive queries (e.g. phrases andSpanQuery
ies) are highlighted strictly based on query matches (slower) versus any/all occurrences of the underlying terms. By default it's enabled, but there's no overhead if such queries aren't used.
-
withHandleMultiTermQuery
public UnifiedHighlighter.Builder withHandleMultiTermQuery(boolean value)
HereMultiTermQuery
derivatives will be highlighted. By default it's enabled. MTQ highlighting can be expensive, particularly when using offsets in postings.
-
withPassageRelevancyOverSpeed
public UnifiedHighlighter.Builder withPassageRelevancyOverSpeed(boolean value)
Passage relevancy is more important than speed. True by default.
-
withWeightMatches
public UnifiedHighlighter.Builder withWeightMatches(boolean value)
Internally use theWeight.matches(LeafReaderContext, int)
API for highlighting. It's more accurate to the query, and the snippets can be a little different for phrases because the whole phrase is marked up instead of each word. The passage relevancy calculation can be different (maybe worse?) and it's slower when highlighting many fields. Use of this flag requiresUnifiedHighlighter.HighlightFlag.MULTI_TERM_QUERY
andUnifiedHighlighter.HighlightFlag.PHRASES
andUnifiedHighlighter.HighlightFlag.PASSAGE_RELEVANCY_OVER_SPEED
. True by default because those booleans are true by default.
-
withMaxLength
public UnifiedHighlighter.Builder withMaxLength(int value)
The text to be highlight is effectively truncated by this length.
-
withBreakIterator
public UnifiedHighlighter.Builder withBreakIterator(java.util.function.Supplier<java.text.BreakIterator> value)
-
withFieldMatcher
public UnifiedHighlighter.Builder withFieldMatcher(java.util.function.Predicate<java.lang.String> value)
-
withScorer
public UnifiedHighlighter.Builder withScorer(PassageScorer value)
-
withFormatter
public UnifiedHighlighter.Builder withFormatter(PassageFormatter value)
-
withMaxNoHighlightPassages
public UnifiedHighlighter.Builder withMaxNoHighlightPassages(int value)
-
withCacheFieldValCharsThreshold
public UnifiedHighlighter.Builder withCacheFieldValCharsThreshold(int value)
-
build
public UnifiedHighlighter build()
-
getIndexSearcher
public IndexSearcher getIndexSearcher()
... as passed in from the Builder constructor.
-
getIndexAnalyzer
public Analyzer getIndexAnalyzer()
... as passed in from the Builder constructor.
-
getFlags
public java.util.Set<UnifiedHighlighter.HighlightFlag> getFlags()
-
-