Class CustomUnifiedHighlighter

java.lang.Object
org.apache.lucene.search.uhighlight.UnifiedHighlighter
org.elasticsearch.lucene.search.uhighlight.CustomUnifiedHighlighter

public final class CustomUnifiedHighlighter extends org.apache.lucene.search.uhighlight.UnifiedHighlighter
Subclass of the UnifiedHighlighter that works for a single field in a single document. Uses a custom PassageFormatter. Accepts field content as a constructor argument, given that loadings field value can be done reading from _source field. Supports using different BreakIterator to break the text into fragments. Considers every distinct field value as a discrete passage for highlighting (unless the whole content needs to be highlighted). Supports both returning empty snippets and non highlighted snippets when no highlighting can be performed.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.lucene.search.uhighlight.UnifiedHighlighter

    org.apache.lucene.search.uhighlight.UnifiedHighlighter.Builder, org.apache.lucene.search.uhighlight.UnifiedHighlighter.HighlightFlag, org.apache.lucene.search.uhighlight.UnifiedHighlighter.LimitedStoredFieldVisitor, org.apache.lucene.search.uhighlight.UnifiedHighlighter.OffsetSource
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final char
     

    Fields inherited from class org.apache.lucene.search.uhighlight.UnifiedHighlighter

    DEFAULT_CACHE_CHARS_THRESHOLD, DEFAULT_MAX_LENGTH, fieldInfos, indexAnalyzer, searcher, ZERO_LEN_AUTOMATA_ARRAY
  • Constructor Summary

    Constructors
    Constructor
    Description
    CustomUnifiedHighlighter(org.apache.lucene.search.uhighlight.UnifiedHighlighter.Builder builder, org.apache.lucene.search.uhighlight.UnifiedHighlighter.OffsetSource offsetSource, Locale breakIteratorLocale, String index, String field, org.apache.lucene.search.Query query, int noMatchSize, int maxPassages, int maxAnalyzedOffset, Integer queryMaxAnalyzedOffset, boolean requireFieldMatch, boolean weightMatchesEnabled)
    Creates a new instance of CustomUnifiedHighlighter
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.lucene.search.uhighlight.PassageFormatter
     
    protected org.apache.lucene.search.uhighlight.UnifiedHighlighter.OffsetSource
    Forces the offset source for this highlighter
    highlightField(org.apache.lucene.index.LeafReader reader, int docId, CheckedSupplier<String,IOException> loadFieldValue)
    Highlights the field value.
    protected org.apache.lucene.search.uhighlight.FieldHighlighter
    newFieldHighlighter(String field, org.apache.lucene.search.uhighlight.FieldOffsetStrategy fieldOffsetStrategy, BreakIterator breakIterator, org.apache.lucene.search.uhighlight.PassageScorer passageScorer, int maxPassages, int maxNoHighlightPassages, org.apache.lucene.search.uhighlight.PassageFormatter passageFormatter)
     
    protected Collection<org.apache.lucene.search.Query>
    preSpanQueryRewrite(org.apache.lucene.search.Query query)
     

    Methods inherited from class org.apache.lucene.search.uhighlight.UnifiedHighlighter

    builder, builderWithoutSearcher, evaluateFlags, evaluateFlags, evaluateFlags, extractTerms, filterExtractedTerms, getAutomata, getBreakIterator, getCacheFieldValCharsThreshold, getFieldHighlighter, getFieldInfo, getFieldMatcher, getFlags, getFormatter, getHighlightComponents, getIndexAnalyzer, getIndexSearcher, getMaxLength, getMaxNoHighlightPassages, getOffsetStrategy, getOptimizedOffsetSource, getPhraseHelper, getScorer, hasUnrecognizedQuery, highlight, highlight, highlightFields, highlightFields, highlightFields, highlightFieldsAsObjects, highlightWithoutSearcher, loadFieldValues, newLimitedStoredFieldsVisitor, requiresRewrite, setBreakIterator, setCacheFieldValCharsThreshold, setFieldMatcher, setFormatter, setHandleMultiTermQuery, setHighlightPhrasesStrictly, setMaxLength, setMaxNoHighlightPassages, setPassageRelevancyOverSpeed, setScorer, setWeightMatches, shouldHandleMultiTermQuery, shouldHighlightPhrasesStrictly, shouldPreferPassageRelevancyOverSpeed

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • CustomUnifiedHighlighter

      public CustomUnifiedHighlighter(org.apache.lucene.search.uhighlight.UnifiedHighlighter.Builder builder, org.apache.lucene.search.uhighlight.UnifiedHighlighter.OffsetSource offsetSource, @Nullable Locale breakIteratorLocale, String index, String field, org.apache.lucene.search.Query query, int noMatchSize, int maxPassages, int maxAnalyzedOffset, Integer queryMaxAnalyzedOffset, boolean requireFieldMatch, boolean weightMatchesEnabled)
      Creates a new instance of CustomUnifiedHighlighter
      Parameters:
      builder - the UnifiedHighlighter.Builder for the underlying highlighter.
      offsetSource - the UnifiedHighlighter.OffsetSource to used for offsets retrieval.
      breakIteratorLocale - the Locale to use for dividing text into passages. If null Locale.ROOT is used.
      index - the index we're highlighting, mostly used for error messages
      field - the name of the field we're highlighting
      query - the query we're highlighting
      noMatchSize - The size of the text that should be returned when no highlighting can be performed.
      maxPassages - the maximum number of passes to highlight
      maxAnalyzedOffset - if the field is more than this long we'll refuse to use the ANALYZED offset source for it because it'd be super slow
      weightMatchesEnabled - whether the UnifiedHighlighter.HighlightFlag.WEIGHT_MATCHES should be enabled
  • Method Details

    • highlightField

      public Snippet[] highlightField(org.apache.lucene.index.LeafReader reader, int docId, CheckedSupplier<String,IOException> loadFieldValue) throws IOException
      Highlights the field value.
      Throws:
      IOException
    • getFormatter

      public org.apache.lucene.search.uhighlight.PassageFormatter getFormatter()
    • newFieldHighlighter

      protected org.apache.lucene.search.uhighlight.FieldHighlighter newFieldHighlighter(String field, org.apache.lucene.search.uhighlight.FieldOffsetStrategy fieldOffsetStrategy, BreakIterator breakIterator, org.apache.lucene.search.uhighlight.PassageScorer passageScorer, int maxPassages, int maxNoHighlightPassages, org.apache.lucene.search.uhighlight.PassageFormatter passageFormatter)
      Overrides:
      newFieldHighlighter in class org.apache.lucene.search.uhighlight.UnifiedHighlighter
    • preSpanQueryRewrite

      protected Collection<org.apache.lucene.search.Query> preSpanQueryRewrite(org.apache.lucene.search.Query query)
      Overrides:
      preSpanQueryRewrite in class org.apache.lucene.search.uhighlight.UnifiedHighlighter
    • getOffsetSource

      protected org.apache.lucene.search.uhighlight.UnifiedHighlighter.OffsetSource getOffsetSource(String field)
      Forces the offset source for this highlighter
      Overrides:
      getOffsetSource in class org.apache.lucene.search.uhighlight.UnifiedHighlighter