public class org.apache.lucene.search.grouping.TopGroupsCollector<T> extends org.apache.lucene.search.grouping.SecondPassGroupingCollector<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.lucene.search.grouping.TopGroupsCollector
super_class: org.apache.lucene.search.grouping.SecondPassGroupingCollector
{
private final org.apache.lucene.search.Sort groupSort;
descriptor: Lorg/apache/lucene/search/Sort;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.lucene.search.Sort withinGroupSort;
descriptor: Lorg/apache/lucene/search/Sort;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxDocsPerGroup;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.apache.lucene.search.grouping.GroupSelector<T>, java.util.Collection<org.apache.lucene.search.grouping.SearchGroup<T>>, org.apache.lucene.search.Sort, org.apache.lucene.search.Sort, int, );
descriptor: (Lorg/apache/lucene/search/grouping/GroupSelector;Ljava/util/Collection;Lorg/apache/lucene/search/Sort;Lorg/apache/lucene/search/Sort;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
1: new org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsReducer
dup
aload 4
iload 5
iload 6
invokespecial org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsReducer.<init>:(Lorg/apache/lucene/search/Sort;IZ)V
invokespecial org.apache.lucene.search.grouping.SecondPassGroupingCollector.<init>:(Lorg/apache/lucene/search/grouping/GroupSelector;Ljava/util/Collection;Lorg/apache/lucene/search/grouping/GroupReducer;)V
2: aload 0
aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.lucene.search.Sort
putfield org.apache.lucene.search.grouping.TopGroupsCollector.groupSort:Lorg/apache/lucene/search/Sort;
3: aload 0
aload 4
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.lucene.search.Sort
putfield org.apache.lucene.search.grouping.TopGroupsCollector.withinGroupSort:Lorg/apache/lucene/search/Sort;
4: aload 0
iload 5
putfield org.apache.lucene.search.grouping.TopGroupsCollector.maxDocsPerGroup:I
5: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/lucene/search/grouping/TopGroupsCollector<TT;>;
0 6 1 groupSelector Lorg/apache/lucene/search/grouping/GroupSelector<TT;>;
0 6 2 groups Ljava/util/Collection<Lorg/apache/lucene/search/grouping/SearchGroup<TT;>;>;
0 6 3 groupSort Lorg/apache/lucene/search/Sort;
0 6 4 withinGroupSort Lorg/apache/lucene/search/Sort;
0 6 5 maxDocsPerGroup I
0 6 6 getMaxScores Z
Signature: (Lorg/apache/lucene/search/grouping/GroupSelector<TT;>;Ljava/util/Collection<Lorg/apache/lucene/search/grouping/SearchGroup<TT;>;>;Lorg/apache/lucene/search/Sort;Lorg/apache/lucene/search/Sort;IZ)V
MethodParameters:
Name Flags
groupSelector
groups
groupSort
withinGroupSort
maxDocsPerGroup
getMaxScores
public org.apache.lucene.search.grouping.TopGroups<T> getTopGroups(int);
descriptor: (I)Lorg/apache/lucene/search/grouping/TopGroups;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.groups:Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
anewarray org.apache.lucene.search.grouping.GroupDocs
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: ldc 1.4E-45
fstore 4
start local 4 3: aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.groups:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 29
StackMap locals: org.apache.lucene.search.grouping.TopGroupsCollector int org.apache.lucene.search.grouping.GroupDocs[] int float top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.lucene.search.grouping.SearchGroup
astore 5
start local 5 5: aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.groupReducer:Lorg/apache/lucene/search/grouping/GroupReducer;
aload 5
getfield org.apache.lucene.search.grouping.SearchGroup.groupValue:Ljava/lang/Object;
invokevirtual org.apache.lucene.search.grouping.GroupReducer.getCollector:(Ljava/lang/Object;)Lorg/apache/lucene/search/Collector;
checkcast org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector
astore 7
start local 7 6: aload 7
getfield org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector.sortedByScore:Z
ifeq 16
7: aload 7
getfield org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector.topDocsCollector:Lorg/apache/lucene/search/TopDocsCollector;
invokevirtual org.apache.lucene.search.TopDocsCollector.topDocs:()Lorg/apache/lucene/search/TopDocs;
astore 10
start local 10 8: aload 10
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
arraylength
ifne 9
ldc NaN
goto 10
StackMap locals: org.apache.lucene.search.grouping.TopGroupsCollector int org.apache.lucene.search.grouping.GroupDocs[] int float org.apache.lucene.search.grouping.SearchGroup java.util.Iterator org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector top top org.apache.lucene.search.TopDocs
StackMap stack:
9: aload 10
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
iconst_0
aaload
getfield org.apache.lucene.search.ScoreDoc.score:F
StackMap locals:
StackMap stack: float
10: fstore 9
start local 9 11: aload 10
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
arraylength
iload 1
if_icmpgt 14
12: new org.apache.lucene.search.TopDocs
dup
aload 10
getfield org.apache.lucene.search.TopDocs.totalHits:Lorg/apache/lucene/search/TotalHits;
iconst_0
anewarray org.apache.lucene.search.ScoreDoc
invokespecial org.apache.lucene.search.TopDocs.<init>:(Lorg/apache/lucene/search/TotalHits;[Lorg/apache/lucene/search/ScoreDoc;)V
astore 8
start local 8 13: goto 21
end local 8 14: StackMap locals: org.apache.lucene.search.grouping.TopGroupsCollector int org.apache.lucene.search.grouping.GroupDocs[] int float org.apache.lucene.search.grouping.SearchGroup java.util.Iterator org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector top float org.apache.lucene.search.TopDocs
StackMap stack:
new org.apache.lucene.search.TopDocs
dup
aload 10
getfield org.apache.lucene.search.TopDocs.totalHits:Lorg/apache/lucene/search/TotalHits;
aload 10
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
iload 1
aload 10
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
arraylength
iload 1
aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.maxDocsPerGroup:I
iadd
invokestatic java.lang.Math.min:(II)I
invokestatic org.apache.lucene.util.ArrayUtil.copyOfSubArray:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast org.apache.lucene.search.ScoreDoc[]
invokespecial org.apache.lucene.search.TopDocs.<init>:(Lorg/apache/lucene/search/TotalHits;[Lorg/apache/lucene/search/ScoreDoc;)V
astore 8
end local 10 start local 8 15: goto 21
end local 9 end local 8 16: StackMap locals: org.apache.lucene.search.grouping.TopGroupsCollector int org.apache.lucene.search.grouping.GroupDocs[] int float org.apache.lucene.search.grouping.SearchGroup java.util.Iterator org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector
StackMap stack:
aload 7
getfield org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector.topDocsCollector:Lorg/apache/lucene/search/TopDocsCollector;
iload 1
aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.maxDocsPerGroup:I
invokevirtual org.apache.lucene.search.TopDocsCollector.topDocs:(II)Lorg/apache/lucene/search/TopDocs;
astore 8
start local 8 17: aload 7
getfield org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector.maxScoreCollector:Lorg/apache/lucene/search/grouping/TopGroupsCollector$MaxScoreCollector;
ifnonnull 20
18: ldc NaN
fstore 9
start local 9 19: goto 21
end local 9 20: StackMap locals: org.apache.lucene.search.TopDocs
StackMap stack:
aload 7
getfield org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector.maxScoreCollector:Lorg/apache/lucene/search/grouping/TopGroupsCollector$MaxScoreCollector;
invokevirtual org.apache.lucene.search.grouping.TopGroupsCollector$MaxScoreCollector.getMaxScore:()F
fstore 9
start local 9 21: StackMap locals: float
StackMap stack:
aload 2
iload 3
iinc 3 1
new org.apache.lucene.search.grouping.GroupDocs
dup
ldc NaN
22: fload 9
23: aload 8
getfield org.apache.lucene.search.TopDocs.totalHits:Lorg/apache/lucene/search/TotalHits;
24: aload 8
getfield org.apache.lucene.search.TopDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
25: aload 5
getfield org.apache.lucene.search.grouping.SearchGroup.groupValue:Ljava/lang/Object;
26: aload 5
getfield org.apache.lucene.search.grouping.SearchGroup.sortValues:[Ljava/lang/Object;
invokespecial org.apache.lucene.search.grouping.GroupDocs.<init>:(FFLorg/apache/lucene/search/TotalHits;[Lorg/apache/lucene/search/ScoreDoc;Ljava/lang/Object;[Ljava/lang/Object;)V
27: aastore
28: fload 4
fload 9
invokestatic java.lang.Math.max:(FF)F
fstore 4
end local 9 end local 8 end local 7 end local 5 29: StackMap locals: org.apache.lucene.search.grouping.TopGroupsCollector int org.apache.lucene.search.grouping.GroupDocs[] int float top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
30: new org.apache.lucene.search.grouping.TopGroups
dup
aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.groupSort:Lorg/apache/lucene/search/Sort;
invokevirtual org.apache.lucene.search.Sort.getSort:()[Lorg/apache/lucene/search/SortField;
31: aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.withinGroupSort:Lorg/apache/lucene/search/Sort;
invokevirtual org.apache.lucene.search.Sort.getSort:()[Lorg/apache/lucene/search/SortField;
32: aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.totalHitCount:I
aload 0
getfield org.apache.lucene.search.grouping.TopGroupsCollector.totalGroupedHitCount:I
aload 2
33: fload 4
34: invokespecial org.apache.lucene.search.grouping.TopGroups.<init>:([Lorg/apache/lucene/search/SortField;[Lorg/apache/lucene/search/SortField;II[Lorg/apache/lucene/search/grouping/GroupDocs;F)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/lucene/search/grouping/TopGroupsCollector<TT;>;
0 35 1 withinGroupOffset I
1 35 2 groupDocsResult [Lorg/apache/lucene/search/grouping/GroupDocs;
2 35 3 groupIDX I
3 35 4 maxScore F
5 29 5 group Lorg/apache/lucene/search/grouping/SearchGroup<TT;>;
6 29 7 collector Lorg/apache/lucene/search/grouping/TopGroupsCollector$TopDocsAndMaxScoreCollector;
13 14 8 topDocs Lorg/apache/lucene/search/TopDocs;
15 16 8 topDocs Lorg/apache/lucene/search/TopDocs;
17 29 8 topDocs Lorg/apache/lucene/search/TopDocs;
11 16 9 groupMaxScore F
19 20 9 groupMaxScore F
21 29 9 groupMaxScore F
8 15 10 allTopDocs Lorg/apache/lucene/search/TopDocs;
Signature: (I)Lorg/apache/lucene/search/grouping/TopGroups<TT;>;
MethodParameters:
Name Flags
withinGroupOffset
}
Signature: <T:Ljava/lang/Object;>Lorg/apache/lucene/search/grouping/SecondPassGroupingCollector<TT;>;
SourceFile: "TopGroupsCollector.java"
NestMembers:
org.apache.lucene.search.grouping.TopGroupsCollector$MaxScoreCollector org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsReducer
InnerClasses:
private MaxScoreCollector = org.apache.lucene.search.grouping.TopGroupsCollector$MaxScoreCollector of org.apache.lucene.search.grouping.TopGroupsCollector
private TopDocsAndMaxScoreCollector = org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsAndMaxScoreCollector of org.apache.lucene.search.grouping.TopGroupsCollector
private TopDocsReducer = org.apache.lucene.search.grouping.TopGroupsCollector$TopDocsReducer of org.apache.lucene.search.grouping.TopGroupsCollector