Mailing List Archive

Why two TermAndBoost classes
Was fishing around in parsers in solr and discovered that we have two
different term and boost classes in Lucene. Is this really desirable? They
are quite similar except one implements a notion of equality, and doesn't
copy the BytesRef when created whereas the other relies on object equality
and does copy the BytesRef in the constructor.

The difference in copying BytesRef seems suspicious, and I wonder if
there's a good reason not to have a different notion of equality among the
two. Also one is public and the other is private to SynonymQuery but both
are static and don't seem to leverage their privileges of being within the
containing class, so maybe they don't need to be inner classes?

-Gus

--
http://www.needhamsoftware.com (work)
http://www.the111shift.com (play)
Re: Why two TermAndBoost classes [ In reply to ]
Adding to cc Daniele who worked on this quite recently!

Cheers

On Tue, 2 May 2023, 21:12 Gus Heck, <gus.heck@gmail.com> wrote:

> Was fishing around in parsers in solr and discovered that we have two
> different term and boost classes in Lucene. Is this really desirable? They
> are quite similar except one implements a notion of equality, and doesn't
> copy the BytesRef when created whereas the other relies on object equality
> and does copy the BytesRef in the constructor.
>
> The difference in copying BytesRef seems suspicious, and I wonder if
> there's a good reason not to have a different notion of equality among the
> two. Also one is public and the other is private to SynonymQuery but both
> are static and don't seem to leverage their privileges of being within the
> containing class, so maybe they don't need to be inner classes?
>
> -Gus
>
> --
> http://www.needhamsoftware.com (work)
> http://www.the111shift.com (play)
>