TJK,

Thank for that note. (I like that fix better too).

I never realized that setting the value of a key that doesn't exist would 
create a new one.
Good to know.

Thanks,
Jeroen

-----Original Message-----
From: Doug Sale [mailto:[EMAIL PROTECTED]
Sent: donderdag 11 september 2008 21:17
To: [email protected]
Subject: Re: Exception thrown in MultiPhraseQuery.ExtractTerms

TJK,

I like your fix better ;]

And, yes, the "== false" garbage is a leftover from the VS JLCA (I
believe).  I'll make a note to change these - or feel free to submit a
patch.

Thanks,
Doug

On Thu, Sep 11, 2008 at 2:05 PM, TJ Kolev <[EMAIL PROTECTED]> wrote:

> Hello!
>
> This has been a bug since 1.9. The way I fixed it is like this:
>
>    terms[arr[i]] = arr[i];
>
> Although it does not matter, this matches the semantics of the Java
> version - i.e. it keeps the last object in the hash, whereas checking
> Contains() will keep the first one.
>
>
> I see TermQuery, SpanTermQuery, and PhraseQuery have addressed this
> issue already, although instead of
>
>    if (queryTerms.Contains(term) == false)    // Is this an artifact
> of a tool used in porting?
>
> I'd rather see
>
>    if (!queryTerms.Contains(term))
>
> or even better just queryTerms[term] = term with no need to check.
>
> Regards,
> tjk :)
>

Reply via email to