Class FastVectorHighlighter


  • public class FastVectorHighlighter
    extends java.lang.Object
    Another highlighter implementation.
    • Field Detail

      • DEFAULT_PHRASE_HIGHLIGHT

        public static final boolean DEFAULT_PHRASE_HIGHLIGHT
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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 Detail

      • getFieldQuery

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

        public final java.lang.String getBestFragment​(FieldQuery fieldQuery,
                                                      IndexReader reader,
                                                      int docId,
                                                      java.lang.String fieldName,
                                                      int fragCharSize)
                                               throws java.io.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:
        java.io.IOException - If there is a low-level I/O error
      • getBestFragments

        public final java.lang.String[] getBestFragments​(FieldQuery fieldQuery,
                                                         IndexReader reader,
                                                         int docId,
                                                         java.lang.String fieldName,
                                                         int fragCharSize,
                                                         int maxNumFragments)
                                                  throws java.io.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:
        java.io.IOException - If there is a low-level I/O error
      • getBestFragment

        public final java.lang.String getBestFragment​(FieldQuery fieldQuery,
                                                      IndexReader reader,
                                                      int docId,
                                                      java.lang.String fieldName,
                                                      int fragCharSize,
                                                      FragListBuilder fragListBuilder,
                                                      FragmentsBuilder fragmentsBuilder,
                                                      java.lang.String[] preTags,
                                                      java.lang.String[] postTags,
                                                      Encoder encoder)
                                               throws java.io.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:
        java.io.IOException - If there is a low-level I/O error
      • getBestFragments

        public final java.lang.String[] getBestFragments​(FieldQuery fieldQuery,
                                                         IndexReader reader,
                                                         int docId,
                                                         java.lang.String fieldName,
                                                         int fragCharSize,
                                                         int maxNumFragments,
                                                         FragListBuilder fragListBuilder,
                                                         FragmentsBuilder fragmentsBuilder,
                                                         java.lang.String[] preTags,
                                                         java.lang.String[] postTags,
                                                         Encoder encoder)
                                                  throws java.io.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:
        java.io.IOException - If there is a low-level I/O error
      • getBestFragments

        public final java.lang.String[] getBestFragments​(FieldQuery fieldQuery,
                                                         IndexReader reader,
                                                         int docId,
                                                         java.lang.String storedField,
                                                         java.util.Set<java.lang.String> matchedFields,
                                                         int fragCharSize,
                                                         int maxNumFragments,
                                                         FragListBuilder fragListBuilder,
                                                         FragmentsBuilder fragmentsBuilder,
                                                         java.lang.String[] preTags,
                                                         java.lang.String[] postTags,
                                                         Encoder encoder)
                                                  throws java.io.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:
        java.io.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).