Class ReverseStringFilter

All Implemented Interfaces:
Closeable, AutoCloseable, Unwrappable<TokenStream>

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.

  • Field Details

    • START_OF_HEADING_MARKER

      public static final char START_OF_HEADING_MARKER
      Example marker character: U+0001 (START OF HEADING)
      See Also:
    • INFORMATION_SEPARATOR_MARKER

      public static final char INFORMATION_SEPARATOR_MARKER
      Example marker character: U+001F (INFORMATION SEPARATOR ONE)
      See Also:
    • PUA_EC00_MARKER

      public static final char PUA_EC00_MARKER
      Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
      See Also:
    • RTL_DIRECTION_MARKER

      public static final char RTL_DIRECTION_MARKER
      Example marker character: U+200F (RIGHT-TO-LEFT MARK)
      See Also:
  • Constructor Details

    • 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 Details

    • incrementToken

      public boolean incrementToken() throws IOException
      Specified by:
      incrementToken in class TokenStream
      Throws:
      IOException
    • reverse

      public static String reverse(String input)
      Reverses the given input string
      Parameters:
      input - the string to reverse
      Returns:
      the given input string in reversed order
    • reverse

      public static void reverse(char[] buffer)
      Reverses the given input buffer in-place
      Parameters:
      buffer - the input char array to reverse
    • reverse

      public static void reverse(char[] buffer, int len)
      Partially reverses the given input buffer in-place from offset 0 up to the given length.
      Parameters:
      buffer - the input char array to reverse
      len - the length in the buffer up to where the buffer should be reversed
    • reverse

      public static void reverse(char[] buffer, int start, int len)
      Partially reverses the given input buffer in-place from the given offset up to the given length.
      Parameters:
      buffer - the input char array to reverse
      start - the offset from where to reverse the buffer
      len - the length in the buffer up to where the buffer should be reversed