lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] Commented: (LUCENE-1842) Add reset(AttributeSource) method to AttributeSource
Date Sat, 22 Aug 2009 13:00:16 GMT


Uwe Schindler commented on LUCENE-1842:

As I said, this can be solved the following way:
When you *create* the TokenStreams, tell them to use *one* (using the new ctors from LUCENE-1826).
The problem in your example is, that you use reuseableTokenStreams from an analyzer which
has no possibility to use a different factory/attributesource. To solve this here, either
create the streams directly and cache the complete merger (use a MergeAnalyzer that caches
the tokenstreams to merge) or we have to add a factory/attributesource also to Analyzer's

> Add reset(AttributeSource) method to AttributeSource
> ----------------------------------------------------
>                 Key: LUCENE-1842
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Wish
>          Components: Analysis
>            Reporter: Tim Smith
>            Priority: Minor
> Originally proposed in LUCENE-1826
> Proposing the addition of the following method to AttributeSource
> {code}
> public void reset(AttributeSource input) {
>     if (input == null) {
>       throw new IllegalArgumentException("input AttributeSource must not be null");
>     }
>     this.attributes = input.attributes;
>     this.attributeImpls = input.attributeImpls;
>     this.factory = input.factory;
> }
> {code}
> Impacts:
> * requires all TokenStreams/TokenFIlters/etc to call addAttribute() in their reset()
method, not in their constructor
> * requires making AttributeSource.attributes and AttributeSource.attributesImpl non-final
> Advantages:
> Allows creating only a single actual AttributeSource per thread that can then be used
for indexing with a multitude of TokenStream/Tokenizer combinations (allowing utmost reuse
of TokenStream/Tokenizer instances)
> this results in only a single "attributes"/"attributesImpl" map being required per thread
> addAttribute() calls will almost always return right away (will only be "initialized"
once per thread)

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message