diff --git a/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java b/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java index be71ee11f2c..a72247a75af 100644 --- a/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java +++ b/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java @@ -196,7 +196,7 @@ public class TestGrouping extends LuceneTestCase { return selected; } - private AbstractFirstPassGroupingCollector createFirstPassCollector(String groupField, Sort groupSort, int topDocs, AbstractFirstPassGroupingCollector firstPassGroupingCollector) throws IOException { + private AbstractFirstPassGroupingCollector createFirstPassCollector(String groupField, Sort groupSort, int topDocs, AbstractFirstPassGroupingCollector firstPassGroupingCollector) throws IOException { if (DVFirstPassGroupingCollector.class.isAssignableFrom(firstPassGroupingCollector.getClass())) { boolean diskResident = random.nextBoolean(); return DVFirstPassGroupingCollector.create(groupSort, topDocs, groupField, Type.BYTES_VAR_SORTED, diskResident); @@ -235,7 +235,7 @@ public class TestGrouping extends LuceneTestCase { // Basically converts searchGroups from MutableValue to BytesRef if grouping by ValueSource @SuppressWarnings("unchecked") - private AbstractSecondPassGroupingCollector createSecondPassCollector(AbstractFirstPassGroupingCollector firstPassGroupingCollector, + private AbstractSecondPassGroupingCollector createSecondPassCollector(AbstractFirstPassGroupingCollector firstPassGroupingCollector, String groupField, Collection> searchGroups, Sort groupSort, @@ -266,11 +266,11 @@ public class TestGrouping extends LuceneTestCase { mvalSearchGroups.add(sg); } - return new FunctionSecondPassGroupingCollector(mvalSearchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getScores, getMaxScores, fillSortFields, vs, new HashMap()); + return new FunctionSecondPassGroupingCollector(mvalSearchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getScores, getMaxScores, fillSortFields, vs, new HashMap()); } } - private AbstractAllGroupsCollector createAllGroupsCollector(AbstractFirstPassGroupingCollector firstPassGroupingCollector, + private AbstractAllGroupsCollector createAllGroupsCollector(AbstractFirstPassGroupingCollector firstPassGroupingCollector, String groupField) { if (firstPassGroupingCollector.getClass().isAssignableFrom(TermFirstPassGroupingCollector.class)) { return new TermAllGroupsCollector(groupField); @@ -279,11 +279,11 @@ public class TestGrouping extends LuceneTestCase { return DVAllGroupsCollector.create(groupField, Type.BYTES_VAR_SORTED, diskResident); } else { ValueSource vs = new BytesRefFieldSource(groupField); - return new FunctionAllGroupsCollector(vs, new HashMap()); + return new FunctionAllGroupsCollector(vs, new HashMap()); } } - private void compareGroupValue(String expected, GroupDocs group) { + private void compareGroupValue(String expected, GroupDocs group) { if (expected == null) { if (group.groupValue == null) { return; @@ -306,7 +306,7 @@ public class TestGrouping extends LuceneTestCase { } } - private Collection> getSearchGroups(AbstractFirstPassGroupingCollector c, int groupOffset, boolean fillFields) { + private Collection> getSearchGroups(AbstractFirstPassGroupingCollector c, int groupOffset, boolean fillFields) { if (TermFirstPassGroupingCollector.class.isAssignableFrom(c.getClass())) { return ((TermFirstPassGroupingCollector) c).getTopGroups(groupOffset, fillFields); } else if (FunctionFirstPassGroupingCollector.class.isAssignableFrom(c.getClass())) { @@ -332,7 +332,7 @@ public class TestGrouping extends LuceneTestCase { return null; } - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) private TopGroups getTopGroups(AbstractSecondPassGroupingCollector c, int withinGroupOffset) { if (c.getClass().isAssignableFrom(TermSecondPassGroupingCollector.class)) { return ((TermSecondPassGroupingCollector) c).getTopGroups(withinGroupOffset); @@ -425,6 +425,7 @@ public class TestGrouping extends LuceneTestCase { }; } + @SuppressWarnings({"unchecked","rawtypes"}) private Comparable[] fillFields(GroupDoc d, Sort sort) { final SortField[] sortFields = sort.getSort(); final Comparable[] fields = new Comparable[sortFields.length]; @@ -514,7 +515,7 @@ public class TestGrouping extends LuceneTestCase { final int limit = Math.min(groupOffset + topNGroups, groups.size()); final Comparator docSortComp = getComparator(docSort); - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked","rawtypes"}) final GroupDocs[] result = new GroupDocs[limit-groupOffset]; int totalGroupedHitCount = 0; for(int idx=groupOffset;idx < limit;idx++) { @@ -874,11 +875,11 @@ public class TestGrouping extends LuceneTestCase { System.out.println("TEST: groupSort=" + groupSort + " docSort=" + docSort + " searchTerm=" + searchTerm + " dF=" + r.docFreq("content", new BytesRef(searchTerm)) +" dFBlock=" + rBlocks.docFreq("content", new BytesRef(searchTerm)) + " topNGroups=" + topNGroups + " groupOffset=" + groupOffset + " docOffset=" + docOffset + " doCache=" + doCache + " docsPerGroup=" + docsPerGroup + " doAllGroups=" + doAllGroups + " getScores=" + getScores + " getMaxScores=" + getMaxScores); } - final AbstractFirstPassGroupingCollector c1 = createRandomFirstPassCollector("group", groupSort, groupOffset+topNGroups, canUseIDV); + final AbstractFirstPassGroupingCollector c1 = createRandomFirstPassCollector("group", groupSort, groupOffset+topNGroups, canUseIDV); final CachingCollector cCache; final Collector c; - final AbstractAllGroupsCollector allGroupsCollector; + final AbstractAllGroupsCollector allGroupsCollector; if (doAllGroups) { allGroupsCollector = createAllGroupsCollector(c1, "group"); } else { @@ -953,7 +954,7 @@ public class TestGrouping extends LuceneTestCase { ValueHolder idvBasedImplsUsedSharded = new ValueHolder(false); final TopGroups topGroupsShards = searchShards(s, shards.subSearchers, query, groupSort, docSort, groupOffset, topNGroups, docOffset, docsPerGroup, getScores, getMaxScores, canUseIDV, preFlex, idvBasedImplsUsedSharded); - final AbstractSecondPassGroupingCollector c2; + final AbstractSecondPassGroupingCollector c2; if (topGroups != null) { if (VERBOSE) { @@ -1097,7 +1098,7 @@ public class TestGrouping extends LuceneTestCase { if (expectedGroups != null) { // Fixup scores for reader2 - for (GroupDocs groupDocsHits : expectedGroups.groups) { + for (GroupDocs groupDocsHits : expectedGroups.groups) { for(ScoreDoc hit : groupDocsHits.scoreDocs) { final GroupDoc gd = groupDocsByID[hit.doc]; assertEquals(gd.id, hit.doc); @@ -1110,7 +1111,7 @@ public class TestGrouping extends LuceneTestCase { final Map termScoreMap = scoreMap.get(searchTerm); for(int groupSortIDX=0;groupSortIDX groupDocsHits : expectedGroups.groups) { if (groupDocsHits.groupSortValues != null) { //System.out.println("remap " + groupDocsHits.groupSortValues[groupSortIDX] + " to " + termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX])); groupDocsHits.groupSortValues[groupSortIDX] = termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX]); @@ -1123,7 +1124,7 @@ public class TestGrouping extends LuceneTestCase { final SortField[] docSortFields = docSort.getSort(); for(int docSortIDX=0;docSortIDX groupDocsHits : expectedGroups.groups) { for(ScoreDoc _hit : groupDocsHits.scoreDocs) { FieldDoc hit = (FieldDoc) _hit; if (hit.fields != null) { @@ -1155,7 +1156,7 @@ public class TestGrouping extends LuceneTestCase { } private void verifyShards(int[] docStarts, TopGroups topGroups) { - for(GroupDocs group : topGroups.groups) { + for(GroupDocs group : topGroups.groups) { for(int hitIDX=0;hitIDX>> shardGroups = new ArrayList>>(); - List firstPassGroupingCollectors = new ArrayList(); - AbstractFirstPassGroupingCollector firstPassCollector = null; + List> firstPassGroupingCollectors = new ArrayList>(); + AbstractFirstPassGroupingCollector firstPassCollector = null; for(int shardIDX=0;shardIDX[] shardTopGroups = new TopGroups[subSearchers.length]; for(int shardIDX=0;shardIDX secondPassCollector = createSecondPassCollector(firstPassGroupingCollectors.get(shardIDX), "group", mergedTopGroups, groupSort, docSort, docOffset + topNDocs, getScores, getMaxScores, true); subSearchers[shardIDX].search(w, secondPassCollector); shardTopGroups[shardIDX] = getTopGroups(secondPassCollector, 0);