Package org.apache.lucene.search.vectorhighlight

# Class BaseFragmentsBuilder

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

All Implemented Interfaces:
  `FragmentsBuilder`

Direct Known Subclasses:
  `ScoreOrderFragmentsBuilder`, `SimpleFragmentsBuilder`

public abstract class BaseFragmentsBuilder extends Object implements FragmentsBuilder
Base FragmentsBuilder implementation that supports colored pre/post tags and multivalued fields.

Uses `BoundaryScanner` to determine fragments.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String[]`
  `COLORED_POST_TAGS`
  `static final String[]`
  `COLORED_PRE_TAGS`
  `protected String[]`
  `postTags`
  `protected String[]`
  `preTags`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `BaseFragmentsBuilder()`
  `protected`
  `BaseFragmentsBuilder(String[] preTags, String[] postTags)`
  `protected`
  `BaseFragmentsBuilder(String[] preTags, String[] postTags, BoundaryScanner boundaryScanner)`
  `protected`
  `BaseFragmentsBuilder(BoundaryScanner boundaryScanner)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `createFragment(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList)`
  create a fragment.
  `String`
  `createFragment(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, String[] preTags, String[] postTags, Encoder encoder)`
  create a fragment.
  `String[]`
  `createFragments(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, int maxNumFragments)`
  create multiple fragments.
  `String[]`
  `createFragments(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, int maxNumFragments, String[] preTags, String[] postTags, Encoder encoder)`
  create multiple fragments.
  `protected List<FieldFragList.WeightedFragInfo>`
  `discreteMultiValueHighlighting(List<FieldFragList.WeightedFragInfo> fragInfos, Field[] fields)`
  `protected Field[]`
  `getFields(IndexReader reader, int docId, String fieldName)`
  `protected String`
  `getFragmentSource(StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset)`
  `protected String`
  `getFragmentSourceMSO(StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset, int[] modifiedStartOffset)`
  `char`
  `getMultiValuedSeparator()`
  `protected String`
  `getPostTag(int num)`
  `protected String`
  `getPostTag(String[] postTags, int num)`
  `protected String`
  `getPreTag(int num)`
  `protected String`
  `getPreTag(String[] preTags, int num)`
  `abstract List<FieldFragList.WeightedFragInfo>`
  `getWeightedFragInfoList(List<FieldFragList.WeightedFragInfo> src)`
  `boolean`
  `isDiscreteMultiValueHighlighting()`
  `protected String`
  `makeFragment(StringBuilder buffer, int[] index, Field[] values, FieldFragList.WeightedFragInfo fragInfo, String[] preTags, String[] postTags, Encoder encoder)`
  `void`
  `setDiscreteMultiValueHighlighting(boolean discreteMultiValueHighlighting)`
  `void`
  `setMultiValuedSeparator(char separator)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### preTags

    protected String[] preTags

  - ### postTags

    protected String[] postTags

  - ### COLORED_PRE_TAGS

    public static final String[] COLORED_PRE_TAGS

  - ### COLORED_POST_TAGS

    public static final String[] COLORED_POST_TAGS

- ## Constructor Details

  - ### BaseFragmentsBuilder

    protected BaseFragmentsBuilder()

  - ### BaseFragmentsBuilder

    protected BaseFragmentsBuilder(String[] preTags, String[] postTags)

  - ### BaseFragmentsBuilder

    protected BaseFragmentsBuilder(BoundaryScanner boundaryScanner)

  - ### BaseFragmentsBuilder

    protected BaseFragmentsBuilder(String[] preTags, String[] postTags, BoundaryScanner boundaryScanner)

- ## Method Details

  - ### getWeightedFragInfoList

    public abstract List<FieldFragList.WeightedFragInfo> getWeightedFragInfoList(List<FieldFragList.WeightedFragInfo> src)

  - ### createFragment

    public String createFragment(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList) throws IOException
    Description copied from interface: `FragmentsBuilder`
    create a fragment.
    Specified by:
      `createFragment` in interface `FragmentsBuilder`
    Parameters:
      `reader` - IndexReader of the index
      `docId` - document id to be highlighted
      `fieldName` - field of the document to be highlighted
      `fieldFragList` - FieldFragList object
    Returns:
      a created fragment or null when no fragment created
    Throws:
      `IOException` - If there is a low-level I/O error

  - ### createFragments

    public String[] createFragments(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, int maxNumFragments) throws IOException
    Description copied from interface: `FragmentsBuilder`
    create multiple fragments.
    Specified by:
      `createFragments` in interface `FragmentsBuilder`
    Parameters:
      `reader` - IndexReader of the index
      `docId` - document id to be highlighter
      `fieldName` - field of the document to be highlighted
      `fieldFragList` - FieldFragList object
      `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

  - ### createFragment

    public String createFragment(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, String[] preTags, String[] postTags, Encoder encoder) throws IOException
    Description copied from interface: `FragmentsBuilder`
    create a fragment.
    Specified by:
      `createFragment` in interface `FragmentsBuilder`
    Parameters:
      `reader` - IndexReader of the index
      `docId` - document id to be highlighted
      `fieldName` - field of the document to be highlighted
      `fieldFragList` - FieldFragList 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:
      a created fragment or null when no fragment created
    Throws:
      `IOException` - If there is a low-level I/O error

  - ### createFragments

    public String[] createFragments(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList, int maxNumFragments, String[] preTags, String[] postTags, Encoder encoder) throws IOException
    Description copied from interface: `FragmentsBuilder`
    create multiple fragments.
    Specified by:
      `createFragments` in interface `FragmentsBuilder`
    Parameters:
      `reader` - IndexReader of the index
      `docId` - document id to be highlighter
      `fieldName` - field of the document to be highlighted
      `fieldFragList` - FieldFragList object
      `maxNumFragments` - maximum number of fragments
      `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

  - ### getFields

    protected Field[] getFields(IndexReader reader, int docId, String fieldName) throws IOException
    Throws:
      `IOException`

  - ### makeFragment

    protected String makeFragment(StringBuilder buffer, int[] index, Field[] values, FieldFragList.WeightedFragInfo fragInfo, String[] preTags, String[] postTags, Encoder encoder)

  - ### getFragmentSourceMSO

    protected String getFragmentSourceMSO(StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset, int[] modifiedStartOffset)

  - ### getFragmentSource

    protected String getFragmentSource(StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset)

  - ### discreteMultiValueHighlighting

    protected List<FieldFragList.WeightedFragInfo> discreteMultiValueHighlighting(List<FieldFragList.WeightedFragInfo> fragInfos, Field[] fields)

  - ### setMultiValuedSeparator

    public void setMultiValuedSeparator(char separator)

  - ### getMultiValuedSeparator

    public char getMultiValuedSeparator()

  - ### isDiscreteMultiValueHighlighting

    public boolean isDiscreteMultiValueHighlighting()

  - ### setDiscreteMultiValueHighlighting

    public void setDiscreteMultiValueHighlighting(boolean discreteMultiValueHighlighting)

  - ### getPreTag

    protected String getPreTag(int num)

  - ### getPostTag

    protected String getPostTag(int num)

  - ### getPreTag

    protected String getPreTag(String[] preTags, int num)

  - ### getPostTag

    protected String getPostTag(String[] postTags, int num)