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

Simon Willnauer commented on LUCENE-2034:
-----------------------------------------

DM, thanks for the extensive example. But I do not see the benefit compared to 
the current solution. To access a default stopword set you have to create an 
instance of a specific analyzer which is IMO not a very natural way. If you 
make it available statically in the analyzer it is simply equivalent to the 
StopawareAnalyzer solution that provides the loading code. We will always have 
to add a public static Set<?> getDefaultStopwords() method to each analyzer and 
this analyzer has to load the stopwords somehow. 

I personally prefer the holder pattern as it is guaranteed to be lazy by the 
JVM. It is a simple declarative solution which requires developers to be 
consistent but this consistency is already required with the static 
getDefaultStopwords() method. - not really a win. 
Please correct me if I miss something. 

> Massive Code Duplication in Contrib Analyzers - unifly the analyzer ctors
> -------------------------------------------------------------------------
>
>                 Key: LUCENE-2034
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2034
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: contrib/analyzers
>    Affects Versions: 2.9
>            Reporter: Simon Willnauer
>            Assignee: Robert Muir
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: LUCENE-2034,patch, LUCENE-2034,patch, LUCENE-2034.patch, 
> LUCENE-2034.patch, LUCENE-2034.patch, LUCENE-2034.patch, LUCENE-2034.patch, 
> LUCENE-2034.txt
>
>
> Due to the variouse tokenStream APIs we had in lucene analyzer subclasses 
> need to implement at least one of the methodes returning a tokenStream. When 
> you look at the code it appears to be almost identical if both are 
> implemented in the same analyzer.  Each analyzer defnes the same inner class 
> (SavedStreams) which is unnecessary.
> In contrib almost every analyzer uses stopwords and each of them creates his 
> own way of loading them or defines a large number of ctors to load stopwords 
> from a file, set, arrays etc.. those ctors should be removed / deprecated and 
> eventually removed.

-- 
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-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to