[ 
https://issues.apache.org/jira/browse/SOLR-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798936#action_12798936
 ] 

Robert Muir commented on SOLR-1677:
-----------------------------------

bq. WTF?!?! ... now i feel like you are just messing with my head.

I am really not trying to, i guess we have just put some recent work that only 
happens with Version >= <somethign recent> and it would be a shame if it were 
never used because we made this too difficult, and it simply falls back on 2.4 
and works without this parameter so no one bothers.

And I also can't see anyone really spending time to aggressively ensure that 
the example schema etc is all up to date (personally i would try to help, it is 
difficult though with lucene and solr so out of sync)

{quote}
I've never argued that the user shouldn't be allowed to change the behavior of 
any class away from the (hardcoded) 2.4 behavior - i've tried to be very clear 
that my objection was only to the new "global" default setting that would have 
action at a distance for all of these Version dependent classes w/o aby obvious 
indication what it was affect.
{quote}

the hardcoded 2.4 behavior is the action at a distance, because if i do not 
specify Version in my configuration file, then i get this very old behavior.

If this is really your concern, then i have an alternative i propose.
* No default anywhere, not even in the code
* Version is mandatory if the thing requires it


> Add support for o.a.lucene.util.Version for BaseTokenizerFactory and 
> BaseTokenFilterFactory
> -------------------------------------------------------------------------------------------
>
>                 Key: SOLR-1677
>                 URL: https://issues.apache.org/jira/browse/SOLR-1677
>             Project: Solr
>          Issue Type: Sub-task
>          Components: Schema and Analysis
>            Reporter: Uwe Schindler
>         Attachments: SOLR-1677.patch, SOLR-1677.patch, SOLR-1677.patch, 
> SOLR-1677.patch
>
>
> Since Lucene 2.9, a lot of analyzers use a Version constant to keep backwards 
> compatibility with old indexes created using older versions of Lucene. The 
> most important example is StandardTokenizer, which changed its behaviour with 
> posIncr and incorrect host token types in 2.4 and also in 2.9.
> In Lucene 3.0 this matchVersion ctor parameter is mandatory and in 3.1, with 
> much more Unicode support, almost every Tokenizer/TokenFilter needs this 
> Version parameter. In 2.9, the deprecated old ctors without Version take 
> LUCENE_24 as default to mimic the old behaviour, e.g. in StandardTokenizer.
> This patch adds basic support for the Lucene Version property to the base 
> factories. Subclasses then can use the luceneMatchVersion decoded enum (in 
> 3.0) / Parameter (in 2.9) for constructing Tokenstreams. The code currently 
> contains a helper map to decode the version strings, but in 3.0 is can be 
> replaced by Version.valueOf(String), as the Version is a subclass of Java5 
> enums. The default value is Version.LUCENE_24 (as this is the default for the 
> no-version ctors in Lucene).
> This patch also removes unneeded conversions to CharArraySet from 
> StopFilterFactory (now done by Lucene since 2.9). The generics are also fixed 
> to match Lucene 3.0.

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

Reply via email to