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
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
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.You must specify the required
Version
compatibility when creating ReverseStringFilter, or when using any of its static methods:- As of 3.1, supplementary characters are handled correctly
-
-
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 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)
-
Constructor Summary
Constructors Constructor Description ReverseStringFilter(Version matchVersion, TokenStream in)
Create a new ReverseStringFilter that reverses all tokens in the suppliedTokenStream
.ReverseStringFilter(Version matchVersion, TokenStream in, char marker)
Create a new ReverseStringFilter that reverses and marks all tokens in the suppliedTokenStream
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
incrementToken()
Consumers (i.e.,IndexWriter
) use this method to advance the stream to the next token.static void
reverse(Version matchVersion, char[] buffer)
Reverses the given input buffer in-placestatic void
reverse(Version matchVersion, char[] buffer, int len)
Partially reverses the given input buffer in-place from offset 0 up to the given length.static void
reverse(Version matchVersion, char[] buffer, int start, int len)
Partially reverses the given input buffer in-place from the given offset up to the given length.static String
reverse(Version matchVersion, String input)
Reverses the given input string-
Methods inherited from class org.apache.lucene.analysis.TokenFilter
close, end, reset
-
Methods inherited from class org.apache.lucene.util.AttributeSource
addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, restoreState, toString
-
-
-
-
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(Version matchVersion, TokenStream in)
Create a new ReverseStringFilter that reverses all tokens in the suppliedTokenStream
.The reversed tokens will not be marked.
- Parameters:
matchVersion
- See abovein
-TokenStream
to filter
-
ReverseStringFilter
public ReverseStringFilter(Version matchVersion, TokenStream in, char marker)
Create a new ReverseStringFilter that reverses and marks all tokens in the suppliedTokenStream
.The reversed tokens will be prepended (marked) by the
marker
character.- Parameters:
matchVersion
- See abovein
-TokenStream
to filtermarker
- A character used to mark reversed tokens
-
-
Method Detail
-
incrementToken
public boolean incrementToken() throws 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 appropriateAttributeImpl
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)
andAttributeSource.getAttribute(Class)
, references to allAttributeImpl
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()
.- Specified by:
incrementToken
in classTokenStream
- Returns:
- false for end of stream; true otherwise
- Throws:
IOException
-
reverse
public static String reverse(Version matchVersion, String input)
Reverses the given input string- Parameters:
matchVersion
- See aboveinput
- the string to reverse- Returns:
- the given input string in reversed order
-
reverse
public static void reverse(Version matchVersion, char[] buffer)
Reverses the given input buffer in-place- Parameters:
matchVersion
- See abovebuffer
- the input char array to reverse
-
reverse
public static void reverse(Version matchVersion, char[] buffer, int len)
Partially reverses the given input buffer in-place from offset 0 up to the given length.- Parameters:
matchVersion
- See abovebuffer
- the input char array to reverselen
- the length in the buffer up to where the buffer should be reversed
-
reverse
public static void reverse(Version matchVersion, char[] buffer, int start, int len)
Partially reverses the given input buffer in-place from the given offset up to the given length.- Parameters:
matchVersion
- See abovebuffer
- the input char array to reversestart
- the offset from where to reverse the bufferlen
- the length in the buffer up to where the buffer should be reversed
-
-