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 java.lang.Object implements FragmentsBuilder
Base FragmentsBuilder implementation that supports colored pre/post tags and multivalued fields.Uses
BoundaryScannerto determine fragments.
-
-
Field Summary
Fields Modifier and Type Field Description private BoundaryScannerboundaryScannerstatic java.lang.String[]COLORED_POST_TAGSstatic java.lang.String[]COLORED_PRE_TAGSprivate booleandiscreteMultiValueHighlightingprivate charmultiValuedSeparatorprivate static EncoderNULL_ENCODERprotected java.lang.String[]postTagsprotected java.lang.String[]preTags
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseFragmentsBuilder()protectedBaseFragmentsBuilder(java.lang.String[] preTags, java.lang.String[] postTags)protectedBaseFragmentsBuilder(java.lang.String[] preTags, java.lang.String[] postTags, BoundaryScanner boundaryScanner)protectedBaseFragmentsBuilder(BoundaryScanner boundaryScanner)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) static java.lang.ObjectcheckTagsArgument(java.lang.Object tags)java.lang.StringcreateFragment(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList)create a fragment.java.lang.StringcreateFragment(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder)create a fragment.java.lang.String[]createFragments(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, int maxNumFragments)create multiple fragments.java.lang.String[]createFragments(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, int maxNumFragments, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder)create multiple fragments.protected java.util.List<FieldFragList.WeightedFragInfo>discreteMultiValueHighlighting(java.util.List<FieldFragList.WeightedFragInfo> fragInfos, Field[] fields)protected Field[]getFields(IndexReader reader, int docId, java.lang.String fieldName)protected java.lang.StringgetFragmentSource(java.lang.StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset)protected java.lang.StringgetFragmentSourceMSO(java.lang.StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset, int[] modifiedStartOffset)chargetMultiValuedSeparator()protected java.lang.StringgetPostTag(int num)protected java.lang.StringgetPostTag(java.lang.String[] postTags, int num)protected java.lang.StringgetPreTag(int num)protected java.lang.StringgetPreTag(java.lang.String[] preTags, int num)abstract java.util.List<FieldFragList.WeightedFragInfo>getWeightedFragInfoList(java.util.List<FieldFragList.WeightedFragInfo> src)booleanisDiscreteMultiValueHighlighting()protected java.lang.StringmakeFragment(java.lang.StringBuilder buffer, int[] index, Field[] values, FieldFragList.WeightedFragInfo fragInfo, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder)voidsetDiscreteMultiValueHighlighting(boolean discreteMultiValueHighlighting)voidsetMultiValuedSeparator(char separator)
-
-
-
Field Detail
-
preTags
protected java.lang.String[] preTags
-
postTags
protected java.lang.String[] postTags
-
COLORED_PRE_TAGS
public static final java.lang.String[] COLORED_PRE_TAGS
-
COLORED_POST_TAGS
public static final java.lang.String[] COLORED_POST_TAGS
-
multiValuedSeparator
private char multiValuedSeparator
-
boundaryScanner
private final BoundaryScanner boundaryScanner
-
discreteMultiValueHighlighting
private boolean discreteMultiValueHighlighting
-
NULL_ENCODER
private static final Encoder NULL_ENCODER
-
-
Constructor Detail
-
BaseFragmentsBuilder
protected BaseFragmentsBuilder()
-
BaseFragmentsBuilder
protected BaseFragmentsBuilder(java.lang.String[] preTags, java.lang.String[] postTags)
-
BaseFragmentsBuilder
protected BaseFragmentsBuilder(BoundaryScanner boundaryScanner)
-
BaseFragmentsBuilder
protected BaseFragmentsBuilder(java.lang.String[] preTags, java.lang.String[] postTags, BoundaryScanner boundaryScanner)
-
-
Method Detail
-
checkTagsArgument
static java.lang.Object checkTagsArgument(java.lang.Object tags)
-
getWeightedFragInfoList
public abstract java.util.List<FieldFragList.WeightedFragInfo> getWeightedFragInfoList(java.util.List<FieldFragList.WeightedFragInfo> src)
-
createFragment
public java.lang.String createFragment(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList) throws java.io.IOException
Description copied from interface:FragmentsBuildercreate a fragment.- Specified by:
createFragmentin 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:
java.io.IOException- If there is a low-level I/O error
-
createFragments
public java.lang.String[] createFragments(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, int maxNumFragments) throws java.io.IOException
Description copied from interface:FragmentsBuildercreate multiple fragments.- Specified by:
createFragmentsin 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:
java.io.IOException- If there is a low-level I/O error
-
createFragment
public java.lang.String createFragment(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder) throws java.io.IOException
Description copied from interface:FragmentsBuildercreate a fragment.- Specified by:
createFragmentin 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:
java.io.IOException- If there is a low-level I/O error
-
createFragments
public java.lang.String[] createFragments(IndexReader reader, int docId, java.lang.String fieldName, FieldFragList fieldFragList, int maxNumFragments, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder) throws java.io.IOException
Description copied from interface:FragmentsBuildercreate multiple fragments.- Specified by:
createFragmentsin 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:
java.io.IOException- If there is a low-level I/O error
-
getFields
protected Field[] getFields(IndexReader reader, int docId, java.lang.String fieldName) throws java.io.IOException
- Throws:
java.io.IOException
-
makeFragment
protected java.lang.String makeFragment(java.lang.StringBuilder buffer, int[] index, Field[] values, FieldFragList.WeightedFragInfo fragInfo, java.lang.String[] preTags, java.lang.String[] postTags, Encoder encoder)
-
getFragmentSourceMSO
protected java.lang.String getFragmentSourceMSO(java.lang.StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset, int[] modifiedStartOffset)
-
getFragmentSource
protected java.lang.String getFragmentSource(java.lang.StringBuilder buffer, int[] index, Field[] values, int startOffset, int endOffset)
-
discreteMultiValueHighlighting
protected java.util.List<FieldFragList.WeightedFragInfo> discreteMultiValueHighlighting(java.util.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 java.lang.String getPreTag(int num)
-
getPostTag
protected java.lang.String getPostTag(int num)
-
getPreTag
protected java.lang.String getPreTag(java.lang.String[] preTags, int num)
-
getPostTag
protected java.lang.String getPostTag(java.lang.String[] postTags, int num)
-
-