Hoss Man created LUCENE-7810:
--------------------------------
Summary: false equals() result for distinctly diff join queries
Key: LUCENE-7810
URL: https://issues.apache.org/jira/browse/LUCENE-7810
Project: Lucene - Core
Issue Type: Bug
Reporter: Hoss Man
While working on SOLR-10583 I was getting some odd test failures that seemed to
suggest we were getting false cache hits for Join queries that should have been
unique.
tracing thorugh the code, the problem seems to be the way {{TermsQuery}}
implements {{equals(Object)}}. This class takes in the {{fromQuery}} (used to
identify set of documents we "join from") and uses it in the equals calculation
-- but the information about the join _field_ is never passed directly to
{{TermsQuery}} and the BytesRefs that are passed in can't be compared
efficiently (AFAICT), so 2 completely diff calls to
{{JoinUtils.createJoinQuery(...)}} can result in Query objects that think they
are {{equal()}} even when they most certainly are not.
At a brief glance, it appears that similar bugs exist in
{{TermsIncludingScoreQuery}} (and possibly {{GlobalOrdinalsWithScoreQuery}},
but i didn't look into that class at all)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]