org.apache.lucene.analysis.standard
Class StandardTokenizer

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.StandardTokenizer
All Implemented Interfaces:
Closeable

public final class StandardTokenizer
extends Tokenizer

A grammar-based tokenizer constructed with JFlex.

As of Lucene version 3.1, this class implements the Word Break rules from the Unicode Text Segmentation algorithm, as specified in Unicode Standard Annex #29.

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 StandardTokenizer:


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource
AttributeSource.AttributeFactory, AttributeSource.State
 
Field Summary
static int ACRONYM
          Deprecated.  
static int ACRONYM_DEP
          Deprecated. this solves a bug where HOSTs that end with '.' are identified as ACRONYMs.
static int ALPHANUM
           
static int APOSTROPHE
          Deprecated.  
static int CJ
          Deprecated.  
static int COMPANY
          Deprecated.  
static int EMAIL
           
static int HANGUL
           
static int HIRAGANA
           
static int HOST
          Deprecated.  
static int IDEOGRAPHIC
           
static int KATAKANA
           
static int NUM
           
static int SOUTHEAST_ASIAN
           
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
StandardTokenizer(Version matchVersion, AttributeSource.AttributeFactory factory, Reader input)
          Creates a new StandardTokenizer with a given AttributeSource.AttributeFactory
StandardTokenizer(Version matchVersion, AttributeSource source, Reader input)
          Creates a new StandardTokenizer with a given AttributeSource.
StandardTokenizer(Version matchVersion, Reader input)
          Creates a new instance of the StandardTokenizer.
 
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

@Deprecated
public static final int APOSTROPHE
Deprecated. 
See Also:
Constant Field Values

ACRONYM

@Deprecated
public static final int ACRONYM
Deprecated. 
See Also:
Constant Field Values

COMPANY

@Deprecated
public static final int COMPANY
Deprecated. 
See Also:
Constant Field Values

EMAIL

public static final int EMAIL
See Also:
Constant Field Values

HOST

@Deprecated
public static final int HOST
Deprecated. 
See Also:
Constant Field Values

NUM

public static final int NUM
See Also:
Constant Field Values

CJ

@Deprecated
public static final int CJ
Deprecated. 
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

SOUTHEAST_ASIAN

public static final int SOUTHEAST_ASIAN
See Also:
Constant Field Values

IDEOGRAPHIC

public static final int IDEOGRAPHIC
See Also:
Constant Field Values

HIRAGANA

public static final int HIRAGANA
See Also:
Constant Field Values

KATAKANA

public static final int KATAKANA
See Also:
Constant Field Values

HANGUL

public static final int HANGUL
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

StandardTokenizer

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

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

StandardTokenizer

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


StandardTokenizer

public StandardTokenizer(Version matchVersion,
                         AttributeSource.AttributeFactory factory,
                         Reader input)
Creates a new StandardTokenizer 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, StandardTokenizer mischaracterized as acronyms tokens like www.abc.com when they should have been labeled as hosts instead.

Returns:
true if StandardTokenizer 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.