org.apache.lucene.analysis.standard
Class ClassicTokenizer

java.lang.Object
  extended by org.apache.lucene.util.AttributeSource
      extended by org.apache.lucene.analysis.TokenStream
          extended by org.apache.lucene.analysis.Tokenizer
              extended by org.apache.lucene.analysis.standard.ClassicTokenizer
All Implemented Interfaces:
Closeable

public final class ClassicTokenizer
extends Tokenizer

A grammar-based tokenizer constructed with JFlex

This should be a good tokenizer for most European-language documents:

Many applications have specific tokenizer needs. If this tokenizer does not suit your application, please consider copying this source code directory to your project and maintaining your own grammar-based tokenizer.

You must specify the required Version compatibility when creating ClassicAnalyzer:

ClassicTokenizer was named StandardTokenizer in Lucene versions prior to 3.1. As of 3.1, StandardTokenizer implements Unicode text segmentation, as specified by UAX#29.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource
AttributeSource.AttributeFactory, AttributeSource.State
 
Field Summary
static int ACRONYM
           
static int ACRONYM_DEP
          Deprecated. this solves a bug where HOSTs that end with '.' are identified as ACRONYMs.
static int ALPHANUM
           
static int APOSTROPHE
           
static int CJ
           
static int COMPANY
           
static int EMAIL
           
static int HOST
           
static int NUM
           
static String[] TOKEN_TYPES
          String token types that correspond to token type int constants
 
Fields inherited from class org.apache.lucene.analysis.Tokenizer
input
 
Constructor Summary
ClassicTokenizer(Version matchVersion, AttributeSource.AttributeFactory factory, Reader input)
          Creates a new ClassicTokenizer with a given AttributeSource.AttributeFactory
ClassicTokenizer(Version matchVersion, AttributeSource source, Reader input)
          Creates a new ClassicTokenizer with a given AttributeSource.
ClassicTokenizer(Version matchVersion, Reader input)
          Creates a new instance of the ClassicTokenizer.
 
Method Summary
 void end()
          This method is called by the consumer after the last token has been consumed, after TokenStream.incrementToken() returned false (using the new TokenStream API).
 int getMaxTokenLength()
           
 boolean incrementToken()
          Consumers (i.e., IndexWriter) use this method to advance the stream to the next token.
 boolean isReplaceInvalidAcronym()
          Deprecated. Remove in 3.X and make true the only valid value
 void reset(Reader reader)
          Expert: Reset the tokenizer to a new reader.
 void setMaxTokenLength(int length)
          Set the max allowed token length.
 void setReplaceInvalidAcronym(boolean replaceInvalidAcronym)
          Deprecated. Remove in 3.X and make true the only valid value See https://issues.apache.org/jira/browse/LUCENE-1068
 
Methods inherited from class org.apache.lucene.analysis.Tokenizer
close, correctOffset
 
Methods inherited from class org.apache.lucene.analysis.TokenStream
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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

ALPHANUM

public static final int ALPHANUM
See Also:
Constant Field Values

APOSTROPHE

public static final int APOSTROPHE
See Also:
Constant Field Values

ACRONYM

public static final int ACRONYM
See Also:
Constant Field Values

COMPANY

public static final int COMPANY
See Also:
Constant Field Values

EMAIL

public static final int EMAIL
See Also:
Constant Field Values

HOST

public static final int HOST
See Also:
Constant Field Values

NUM

public static final int NUM
See Also:
Constant Field Values

CJ

public static final int CJ
See Also:
Constant Field Values

ACRONYM_DEP

@Deprecated
public static final int ACRONYM_DEP
Deprecated. this solves a bug where HOSTs that end with '.' are identified as ACRONYMs.
See Also:
Constant Field Values

TOKEN_TYPES

public static final String[] TOKEN_TYPES
String token types that correspond to token type int constants

Constructor Detail

ClassicTokenizer

public ClassicTokenizer(Version matchVersion,
                        Reader input)
Creates a new instance of the ClassicTokenizer. Attaches the input to the newly created JFlex scanner.

Parameters:
input - The input reader See http://issues.apache.org/jira/browse/LUCENE-1068

ClassicTokenizer

public ClassicTokenizer(Version matchVersion,
                        AttributeSource source,
                        Reader input)
Creates a new ClassicTokenizer with a given AttributeSource.


ClassicTokenizer

public ClassicTokenizer(Version matchVersion,
                        AttributeSource.AttributeFactory factory,
                        Reader input)
Creates a new ClassicTokenizer with a given AttributeSource.AttributeFactory

Method Detail

setMaxTokenLength

public void setMaxTokenLength(int length)
Set the max allowed token length. Any token longer than this is skipped.


getMaxTokenLength

public int getMaxTokenLength()
See Also:
setMaxTokenLength(int)

incrementToken

public final 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 AttributeImpls 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 AttributeImpls 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

end

public final void end()
Description copied from class: TokenStream
This method is called by the consumer after the last token has been consumed, after TokenStream.incrementToken() returned false (using the new TokenStream API). Streams implementing the old API should upgrade to use this feature.

This method can be used to perform any end-of-stream operations, such as setting the final offset of a stream. The final offset of a stream might differ from the offset of the last token eg in case one or more whitespaces followed after the last token, but a WhitespaceTokenizer was used.

Overrides:
end in class TokenStream

reset

public void reset(Reader reader)
           throws IOException
Description copied from class: Tokenizer
Expert: Reset the tokenizer to a new reader. Typically, an analyzer (in its reusableTokenStream method) will use this to re-use a previously created tokenizer.

Overrides:
reset in class Tokenizer
Throws:
IOException

isReplaceInvalidAcronym

@Deprecated
public boolean isReplaceInvalidAcronym()
Deprecated. Remove in 3.X and make true the only valid value

Prior to https://issues.apache.org/jira/browse/LUCENE-1068, ClassicTokenizer mischaracterized as acronyms tokens like www.abc.com when they should have been labeled as hosts instead.

Returns:
true if ClassicTokenizer now returns these tokens as Hosts, otherwise false

setReplaceInvalidAcronym

@Deprecated
public void setReplaceInvalidAcronym(boolean replaceInvalidAcronym)
Deprecated. Remove in 3.X and make true the only valid value See https://issues.apache.org/jira/browse/LUCENE-1068

Parameters:
replaceInvalidAcronym - Set to true to replace mischaracterized acronyms as HOST.