lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hoss Man (JIRA)" <>
Subject [jira] [Created] (LUCENE-7810) false equals() result for distinctly diff join queries
Date Sat, 29 Apr 2017 02:08:04 GMT
Hoss Man created LUCENE-7810:

             Summary: false equals() result for distinctly diff join queries
                 Key: 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message