org.apache.lucene.analysis
Class ASCIIFoldingFilter
java.lang.Object
org.apache.lucene.util.AttributeSource
org.apache.lucene.analysis.TokenStream
org.apache.lucene.analysis.TokenFilter
org.apache.lucene.analysis.ASCIIFoldingFilter
- All Implemented Interfaces:
- Closeable
public final class ASCIIFoldingFilter
- extends TokenFilter
This class converts alphabetic, numeric, and symbolic Unicode characters
which are not in the first 127 ASCII characters (the "Basic Latin" Unicode
block) into their ASCII equivalents, if one exists.
Characters from the following Unicode blocks are converted; however, only
those characters with reasonable ASCII alternatives are converted:
See: http://en.wikipedia.org/wiki/Latin_characters_in_Unicode
The set of character conversions supported by this class is a superset of
those supported by Lucene's ISOLatin1AccentFilter
which strips
accents from Latin1 characters. For example, 'à' will be replaced by
'a'.
Method Summary |
void |
foldToASCII(char[] input,
int length)
Converts characters above ASCII to their ASCII equivalents. |
static int |
foldToASCII(char[] input,
int inputPos,
char[] output,
int outputPos,
int length)
Converts characters above ASCII to their ASCII equivalents. |
boolean |
incrementToken()
Consumers (i.e., IndexWriter ) use this method to advance the stream to
the next token. |
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 |
ASCIIFoldingFilter
public ASCIIFoldingFilter(TokenStream input)
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 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)
,
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()
.
- Specified by:
incrementToken
in class TokenStream
- Returns:
- false for end of stream; true otherwise
- Throws:
IOException
foldToASCII
public void foldToASCII(char[] input,
int length)
- Converts characters above ASCII to their ASCII equivalents. For example,
accents are removed from accented characters.
- Parameters:
input
- The string to foldlength
- The number of characters in the input string
foldToASCII
public static final int foldToASCII(char[] input,
int inputPos,
char[] output,
int outputPos,
int length)
- Converts characters above ASCII to their ASCII equivalents. For example,
accents are removed from accented characters.
- Parameters:
input
- The characters to foldinputPos
- Index of the first character to foldoutput
- The result of the folding. Should be of size >= length * 4
.outputPos
- Index of output where to put the result of the foldinglength
- The number of characters to fold
- Returns:
- length of output
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.