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