Class BaseFragmentsBuilder
java.lang.Object
org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder
- All Implemented Interfaces:
FragmentsBuilder
- Direct Known Subclasses:
ScoreOrderFragmentsBuilder
,SimpleFragmentsBuilder
Base FragmentsBuilder implementation that supports colored pre/post tags and multivalued fields.
Uses BoundaryScanner
to determine fragments.
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
protected
BaseFragmentsBuilder
(String[] preTags, String[] postTags) protected
BaseFragmentsBuilder
(String[] preTags, String[] postTags, BoundaryScanner boundaryScanner) protected
BaseFragmentsBuilder
(BoundaryScanner boundaryScanner) -
Method Summary
Modifier and TypeMethodDescriptioncreateFragment
(IndexReader reader, int docId, String fieldName, FieldFragList fieldFragList) create a fragment.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
protected String
getPostTag
(int num) protected String
getPostTag
(String[] postTags, int num) protected String
getPreTag
(int num) protected String
abstract List<FieldFragList.WeightedFragInfo>
boolean
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)
-
Field Details
-
preTags
-
postTags
-
COLORED_PRE_TAGS
-
COLORED_POST_TAGS
-
-
Constructor Details
-
BaseFragmentsBuilder
protected BaseFragmentsBuilder() -
BaseFragmentsBuilder
-
BaseFragmentsBuilder
-
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 interfaceFragmentsBuilder
- Parameters:
reader
- IndexReader of the indexdocId
- document id to be highlightedfieldName
- field of the document to be highlightedfieldFragList
- 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 interfaceFragmentsBuilder
- Parameters:
reader
- IndexReader of the indexdocId
- document id to be highlighterfieldName
- field of the document to be highlightedfieldFragList
- FieldFragList objectmaxNumFragments
- 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 interfaceFragmentsBuilder
- Parameters:
reader
- IndexReader of the indexdocId
- document id to be highlightedfieldName
- field of the document to be highlightedfieldFragList
- FieldFragList objectpreTags
- pre-tags to be used to highlight termspostTags
- post-tags to be used to highlight termsencoder
- 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 interfaceFragmentsBuilder
- Parameters:
reader
- IndexReader of the indexdocId
- document id to be highlighterfieldName
- field of the document to be highlightedfieldFragList
- FieldFragList objectmaxNumFragments
- maximum number of fragmentspreTags
- pre-tags to be used to highlight termspostTags
- post-tags to be used to highlight termsencoder
- 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
- 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
-
getPostTag
-
getPreTag
-
getPostTag
-