Class FastVectorHighlighter

java.lang.Object
org.apache.lucene.search.vectorhighlight.FastVectorHighlighter

public class FastVectorHighlighter extends Object
Another highlighter implementation.
  • Field Details

    • DEFAULT_PHRASE_HIGHLIGHT

      public static final boolean DEFAULT_PHRASE_HIGHLIGHT
      See Also:
    • DEFAULT_FIELD_MATCH

      public static final boolean DEFAULT_FIELD_MATCH
      See Also:
    • phraseHighlight

      protected final boolean phraseHighlight
    • fieldMatch

      protected final boolean fieldMatch
  • Constructor Details

    • FastVectorHighlighter

      public FastVectorHighlighter()
      the default constructor.
    • FastVectorHighlighter

      public FastVectorHighlighter(boolean phraseHighlight, boolean fieldMatch)
      Parameters:
      phraseHighlight - true or false for phrase highlighting
      fieldMatch - true of false for field matching
    • FastVectorHighlighter

      public FastVectorHighlighter(boolean phraseHighlight, boolean fieldMatch, FragListBuilder fragListBuilder, FragmentsBuilder fragmentsBuilder)
      a constructor. A FragListBuilder and a FragmentsBuilder can be specified (plugins).
      Parameters:
      phraseHighlight - true of false for phrase highlighting
      fieldMatch - true of false for field matching
      fragListBuilder - an instance of FragListBuilder
      fragmentsBuilder - an instance of FragmentsBuilder
  • Method Details

    • getFieldQuery

      public FieldQuery getFieldQuery(Query query)
      create a FieldQuery object.
      Parameters:
      query - a query
      Returns:
      the created FieldQuery object
    • getFieldQuery

      public FieldQuery getFieldQuery(Query query, IndexReader reader) throws IOException
      create a FieldQuery object.
      Parameters:
      query - a query
      Returns:
      the created FieldQuery object
      Throws:
      IOException
    • getBestFragment

      public final String getBestFragment(FieldQuery fieldQuery, IndexReader reader, int docId, String fieldName, int fragCharSize) throws IOException
      return the best fragment.
      Parameters:
      fieldQuery - FieldQuery object
      reader - IndexReader of the index
      docId - document id to be highlighted
      fieldName - field of the document to be highlighted
      fragCharSize - the length (number of chars) of a fragment
      Returns:
      the best fragment (snippet) string
      Throws:
      IOException - If there is a low-level I/O error
    • getBestFragments

      public final String[] getBestFragments(FieldQuery fieldQuery, IndexReader reader, int docId, String fieldName, int fragCharSize, int maxNumFragments) throws IOException
      return the best fragments.
      Parameters:
      fieldQuery - FieldQuery object
      reader - IndexReader of the index
      docId - document id to be highlighted
      fieldName - field of the document to be highlighted
      fragCharSize - the length (number of chars) of a fragment
      maxNumFragments - maximum number of fragments
      Returns:
      created fragments or null when no fragments created. size of the array can be less than maxNumFragments
      Throws:
      IOException - If there is a low-level I/O error
    • getBestFragment

      public final String getBestFragment(FieldQuery fieldQuery, IndexReader reader, int docId, String fieldName, int fragCharSize, FragListBuilder fragListBuilder, FragmentsBuilder fragmentsBuilder, String[] preTags, String[] postTags, Encoder encoder) throws IOException
      return the best fragment.
      Parameters:
      fieldQuery - FieldQuery object
      reader - IndexReader of the index
      docId - document id to be highlighted
      fieldName - field of the document to be highlighted
      fragCharSize - the length (number of chars) of a fragment
      fragListBuilder - FragListBuilder object
      fragmentsBuilder - FragmentsBuilder object
      preTags - pre-tags to be used to highlight terms
      postTags - post-tags to be used to highlight terms
      encoder - an encoder that generates encoded text
      Returns:
      the best fragment (snippet) string
      Throws:
      IOException - If there is a low-level I/O error
    • getBestFragments

      public final String[] getBestFragments(FieldQuery fieldQuery, IndexReader reader, int docId, String fieldName, int fragCharSize, int maxNumFragments, FragListBuilder fragListBuilder, FragmentsBuilder fragmentsBuilder, String[] preTags, String[] postTags, Encoder encoder) throws IOException
      return the best fragments.
      Parameters:
      fieldQuery - FieldQuery object
      reader - IndexReader of the index
      docId - document id to be highlighted
      fieldName - field of the document to be highlighted
      fragCharSize - the length (number of chars) of a fragment
      maxNumFragments - maximum number of fragments
      fragListBuilder - FragListBuilder object
      fragmentsBuilder - FragmentsBuilder object
      preTags - pre-tags to be used to highlight terms
      postTags - post-tags to be used to highlight terms
      encoder - an encoder that generates encoded text
      Returns:
      created fragments or null when no fragments created. size of the array can be less than maxNumFragments
      Throws:
      IOException - If there is a low-level I/O error
    • getBestFragments

      public final String[] getBestFragments(FieldQuery fieldQuery, IndexReader reader, int docId, String storedField, Set<String> matchedFields, int fragCharSize, int maxNumFragments, FragListBuilder fragListBuilder, FragmentsBuilder fragmentsBuilder, String[] preTags, String[] postTags, Encoder encoder) throws IOException
      Return the best fragments. Matches are scanned from matchedFields and turned into fragments against storedField. The highlighting may not make sense if matchedFields has matches with offsets that don't correspond features in storedField. It will outright throw a StringIndexOutOfBoundsException if matchedFields produces offsets outside of storedField. As such it is advisable that all matchedFields share the same source as storedField or are at least a prefix of it.
      Parameters:
      fieldQuery - FieldQuery object
      reader - IndexReader of the index
      docId - document id to be highlighted
      storedField - field of the document that stores the text
      matchedFields - fields of the document to scan for matches
      fragCharSize - the length (number of chars) of a fragment
      maxNumFragments - maximum number of fragments
      fragListBuilder - FragListBuilder object
      fragmentsBuilder - FragmentsBuilder object
      preTags - pre-tags to be used to highlight terms
      postTags - post-tags to be used to highlight terms
      encoder - an encoder that generates encoded text
      Returns:
      created fragments or null when no fragments created. size of the array can be less than maxNumFragments
      Throws:
      IOException - If there is a low-level I/O error
    • isPhraseHighlight

      public boolean isPhraseHighlight()
      return whether phraseHighlight or not.
      Returns:
      whether phraseHighlight or not
    • isFieldMatch

      public boolean isFieldMatch()
      return whether fieldMatch or not.
      Returns:
      whether fieldMatch or not
    • getPhraseLimit

      public int getPhraseLimit()
      Returns:
      the maximum number of phrases to analyze when searching for the highest-scoring phrase.
    • setPhraseLimit

      public void setPhraseLimit(int phraseLimit)
      set the maximum number of phrases to analyze when searching for the highest-scoring phrase. The default is unlimited (Integer.MAX_VALUE).