So someone changing the behavior of an analyzer should fallback to the previous 
behavior if an old version number is passed.

What I fear with this approach is that:
 - you cannot see at compile time which analyzer has changed and which one has 
not (which is what people are interested in in the first place)
 - this model does not work for third party analyzers unless you multiply the 
number of version dependencies and then it becomes utterly confusing.
 - it increases the complexity matrix. A user has to provide the Lucene version 
+ the passed version for each analyzer (and affiliated) used

Java 7 and Jigsaw could solve some of those problems (though not all).

At the end of the day, I wonder if this will not create more issues than the 
ones it is preventing. I hope I'm wrong.

On 8 févr. 2010, at 12:13, Sanne Grinovero wrote:

> ok will fix and apply
> 
> About the Version, I've started a thread on Lucene-dev and got many
> interesting answers and insight:
> http://mail-archives.apache.org/mod_mbox/lucene-java-dev/201002.mbox/%3c50e5f6251002070933p4f9e6150t27ef86fd36ea5...@mail.gmail.com%3e
> 
> Cheers,
> Sanne
> 
> 2010/2/8 Emmanuel Bernard <emman...@hibernate.org>:
>> Right, the spreading of this constant is a bit worrisome but it seems to be 
>> the way Lucene is going.
>> I think getTargetLuceneVersion() is a good addition to SearchTestCase.
>> 
>> In the hopefully near future, this constant will be a parameter of Hibernate 
>> Search at runtime. The DSL will absorb this complexity to the user. So I 
>> don't think migrating the test suite further makes sense.
>> 
>> +1 for the commit with the addition of getTargetLuceneVersion()
>> 
>> On 7 févr. 2010, at 22:53, Sanne Grinovero wrote:
>> 
>>> Actually the patch is needing an update;
>>> I'm extensively using a syntax like :
>>> QueryParser parser = new QueryParser( Version.LUCENE_CURRENT, "id",
>>> SearchTestCase.standardAnalyzer );
>>> 
>>> This "Version" constant is spread around everywhere, you have to
>>> specify it at every QueryParser and Analyzer construction, and in many
>>> other features. I didn't use a single constant because I was trying to
>>> follow Emmanuel's direction of having the tests look as good examples.
>>> On the Lucene community (see mailing list) they're strongly advising
>>> me against using the LUCENE_CURRENT value, but to use a parameter for
>>> the testsuite;
>>> so I'll have to add some helper method in SearchTestCase (or other
>>> utility) like "getTargetLuceneVersion()".
>>> For now I'll only introduce the getter method returning
>>> LUCENE_CURRENT, so we can later introduce logic in this getter and
>>> eventually run tests on different versions (like a parameter of the
>>> maven profile).
>>> 
>>> What about moving the QueryParser building to this utility class?
>>> Seems a logic move to encapsulate a bit more, but it will loose even
>>> more expression as a readable example.
>>> 
>>> Sanne
>>> 
>>> 
>>> 2010/2/7 Hardy Ferentschik <hibern...@ferentschik.de>:
>>>> Fine with me :)
>>>> 
>>>> On Sun, 07 Feb 2010 15:50:13 -0300, Sanne Grinovero
>>>> <sanne.grinov...@gmail.com> wrote:
>>>> 
>>>>> Hello,
>>>>> I've prepared a patch for HSEARCH-458, there's nothing critically
>>>>> complex inside but it's more than 3000 lines of tedious work.
>>>>> It patches almost nothing in main, nearly all classes in test.
>>>>> It changes the way we use Lucene's API, for each deprecated method
>>>>> I've rewritten it to use the new API,
>>>>> so the immediate effect will be to only reduce some warnings, but this
>>>>> is going to be a requirement when switching to Lucene 3.x
>>>>> (Lucene 2.9 deprecated the APIs, 3.x removed them)
>>>>> 
>>>>> ok for commit?
>>>>> If you need to take a look inside, I've attached the patch to JIRA.
>>>>> 
>>>>> This is not about upgrading to Lucene3: it's still compatible with
>>>>> 2.9, but will make upgrade easier later.
>>>> 
>>>> 
>>>> 
>>> _______________________________________________
>>> hibernate-dev mailing list
>>> hibernate-dev@lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> 
>> 


_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to