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 and Description
    --- | ---
    `static String[]` | `COLORED_POST_TAGS`
    `static String[]` | `COLORED_PRE_TAGS`
    `protected String[]` | `postTags`
    `protected String[]` | `preTags`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and 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 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-2024 Apache Software Foundation. All Rights Reserved.