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)