Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Invalid
-
2.9
-
None
-
None
-
New, Patch Available
Description
The DisjunctionMaxQuery class hashCode() implementation is non-deterministic. It uses disjuncts.hashCode() in the computation.
if the contents of disjuncts are arrays, just as DisjunctionMaxQueryTest.
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
String[] terms =
String[] terms2 ={"term1","term2"}
;
list1.add(terms);
list2.add(terms2);
DisjunctionMaxQuery query1 = new DisjunctionMaxQuery(list1,0.0f);
DisjunctionMaxQuery query2 = new DisjunctionMaxQuery(list2,0.0f);
according to the definition of DisjunctionMaxQuery, i think query1 and query2 should be equal.
but DisjunctionMaxQueryTest failed. That is because of DisjunctionMaxQuery.hashCode()
;
maybe my thought is wrong.