org.apache.lucene.search.vectorhighlight
Class BaseFragmentsBuilder

java.lang.Object
  extended by 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
static String[] COLORED_POST_TAGS
           
static String[] COLORED_PRE_TAGS
           
protected  String[] postTags
           
protected  String[] preTags
           
 
Constructor Summary
protected BaseFragmentsBuilder()
           
protected BaseFragmentsBuilder(BoundaryScanner boundaryScanner)
           
protected BaseFragmentsBuilder(String[] preTags, String[] postTags)
           
protected BaseFragmentsBuilder(String[] preTags, String[] postTags, BoundaryScanner boundaryScanner)
           
 
Method Summary
 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 Detail

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 Detail

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 Detail

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)


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.