org.apache.lucene.analysis.reverse

## Class ReverseStringFilter

- java.lang.Object
- - org.apache.lucene.util.AttributeSource
  - - org.apache.lucene.analysis.TokenStream
    - - org.apache.lucene.analysis.TokenFilter
      - - org.apache.lucene.analysis.reverse.ReverseStringFilter

-     public final class ReverseStringFilter
      extends TokenFilter

  Reverse token string, for example "country" => "yrtnuoc".

  If `marker` is supplied, then tokens will be also prepended by that character. For example, with a marker of \u0001, "country" => "\u0001yrtnuoc". This is useful when implementing efficient leading wildcards search.

  Version:
    $Id: ReverseStringFilter.java 805769 2009-08-19 12:07:15Z rmuir $

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource

      `AttributeSource.AttributeFactory, AttributeSource.State`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static char` | `INFORMATION_SEPARATOR_MARKER` Example marker character: U+001F (INFORMATION SEPARATOR ONE)
    `static char` | `PUA_EC00_MARKER` Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
    `static char` | `RTL_DIRECTION_MARKER` Example marker character: U+200F (RIGHT-TO-LEFT MARK)
    `static char` | `START_OF_HEADING_MARKER` Example marker character: U+0001 (START OF HEADING)

    - ### Fields inherited from class org.apache.lucene.analysis.TokenFilter

      `input`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReverseStringFilter(TokenStream in)` Create a new ReverseStringFilter that reverses all tokens in the supplied `TokenStream`.
    `ReverseStringFilter(TokenStream in, char marker)` Create a new ReverseStringFilter that reverses and marks all tokens in the supplied `TokenStream`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `incrementToken()` Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token.
    `static void` | `reverse(char[] buffer)`
    `static void` | `reverse(char[] buffer, int len)`
    `static void` | `reverse(char[] buffer, int start, int len)`
    `static java.lang.String` | `reverse(java.lang.String input)`

    - ### Methods inherited from class org.apache.lucene.analysis.TokenFilter

      `close, end, reset`

    - ### Methods inherited from class org.apache.lucene.analysis.TokenStream

      `getOnlyUseNewAPI, next, next, setOnlyUseNewAPI`

    - ### Methods inherited from class org.apache.lucene.util.AttributeSource

      `addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, restoreState, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### START_OF_HEADING_MARKER

          public static final char START_OF_HEADING_MARKER

      Example marker character: U+0001 (START OF HEADING)
      See Also:
        Constant Field Values

    - #### INFORMATION_SEPARATOR_MARKER

          public static final char INFORMATION_SEPARATOR_MARKER

      Example marker character: U+001F (INFORMATION SEPARATOR ONE)
      See Also:
        Constant Field Values

    - #### PUA_EC00_MARKER

          public static final char PUA_EC00_MARKER

      Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
      See Also:
        Constant Field Values

    - #### RTL_DIRECTION_MARKER

          public static final char RTL_DIRECTION_MARKER

      Example marker character: U+200F (RIGHT-TO-LEFT MARK)
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ReverseStringFilter

          public ReverseStringFilter(TokenStream in)

      Create a new ReverseStringFilter that reverses all tokens in the supplied `TokenStream`.

      The reversed tokens will not be marked.

      Parameters:
        `in` - `TokenStream` to filter

    - #### ReverseStringFilter

          public ReverseStringFilter(TokenStream in,
                                     char marker)

      Create a new ReverseStringFilter that reverses and marks all tokens in the supplied `TokenStream`.

      The reversed tokens will be prepended (marked) by the `marker` character.

      Parameters:
        `in` - `TokenStream` to filter
        `marker` - A character used to mark reversed tokens

  - ### Method Detail

    - #### incrementToken

          public boolean incrementToken()
                                 throws java.io.IOException

      Description copied from class: `TokenStream`
      Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate `AttributeImpl`s with the attributes of the next token.

      The producer must make no assumptions about the attributes after the method has been returned: the caller may arbitrarily change it. If the producer needs to preserve the state for subsequent calls, it can use `AttributeSource.captureState()` to create a copy of the current attribute state.

      This method is called for every token of a document, so an efficient implementation is crucial for good performance. To avoid calls to `AttributeSource.addAttribute(Class)` and `AttributeSource.getAttribute(Class)` or downcasts, references to all `AttributeImpl`s that this stream uses should be retrieved during instantiation.

      To ensure that filters and consumers know which attributes are available, the attributes must be added during instantiation. Filters and consumers are not required to check for availability of attributes in `TokenStream.incrementToken()`.

      Overrides:
        `incrementToken` in class `TokenStream`
      Returns:
        false for end of stream; true otherwise

        Note that this method will be defined abstract in Lucene 3.0.

      Throws:
        `java.io.IOException`

    - #### reverse

          public static java.lang.String reverse(java.lang.String input)

    - #### reverse

          public static void reverse(char[] buffer)

    - #### reverse

          public static void reverse(char[] buffer,
                                     int len)

    - #### reverse

          public static void reverse(char[] buffer,
                                     int start,
                                     int len)

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