lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (LUCENE-1842) Add reset(AttributeSource) method to AttributeSource
Date Sat, 22 Aug 2009 13:18:14 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12746454#action_12746454
] 

Uwe Schindler edited comment on LUCENE-1842 at 8/22/09 6:16 AM:
----------------------------------------------------------------

bq. but i assume this would either have to reconstruct the full TokenStream chain every time
(could be costly), or it would require AttributeSource.reset(AttributeSource) method in order
to reuse saved streams

-In this case, I said: Add a AttributeSource/AttributeFactory to the Analyzer's ctor.- EDIT:
this would break the multi-threaded reusableility of analyzers -- ignore this.

The only possibility you have is to create the whole chain incl. mergers one time and reuse
this merged tokenstrea, This would conform to the usage of Analyzers.

      was (Author: thetaphi):
    bq. but i assume this would either have to reconstruct the full TokenStream chain every
time (could be costly), or it would require AttributeSource.reset(AttributeSource) method
in order to reuse saved streams

In this case, I said: Add a AttributeSource/AttributeFactory to the Analyzer's ctor.
  
> Add reset(AttributeSource) method to AttributeSource
> ----------------------------------------------------
>
>                 Key: LUCENE-1842
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1842
>             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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message