Class CachingTokenFilter
This class can be used if the token attributes of a TokenStream are intended to be consumed more than once. It caches all token attribute states locally in a List.
CachingTokenFilter implements the optional method Reset(), which repositions the stream to the first Token.Implements
Inherited Members
Namespace: Lucene.Net.Analysis
Assembly: Lucene.Net.dll
Syntax
public sealed class CachingTokenFilter : TokenFilter, IDisposable
Constructors
CachingTokenFilter(TokenStream)
Create a new CachingTokenFilter around input
,
caching its token attributes, which can be replayed again
after a call to Reset().
Declaration
public CachingTokenFilter(TokenStream input)
Parameters
Type | Name | Description |
---|---|---|
TokenStream | input |
Methods
Dispose(bool)
Releases resources used by the CachingTokenFilter and if overridden in a derived class, optionally releases unmanaged resources.
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
bool | disposing |
|
Overrides
End()
This method is called by the consumer after the last token has been
consumed, after IncrementToken() returned false
(using the new TokenStream API). Streams implementing the old API
should upgrade to use this feature.
base.End()
first when overriding this method.
Declaration
public override void End()
Overrides
Exceptions
Type | Condition |
---|---|
IOException | If an I/O error occurs |
IncrementToken()
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 IAttributes 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 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 AddAttribute<T>() and GetAttribute<T>(), references to all IAttributes 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 IncrementToken().Declaration
public override bool IncrementToken()
Returns
Type | Description |
---|---|
bool | false for end of stream; true otherwise |
Overrides
Reset()
Rewinds the iterator to the beginning of the cached list.
Note that this does not call Reset() on the wrapped tokenstream ever, even the first time. You should Reset() the inner tokenstream before wrapping it with CachingTokenFilter.Declaration
public override void Reset()