Closed
Description
Grouping currently works via abstract collectors, which need to be overridden for each way of defining a group - currently we have two, 'term' (based on SortedDocValues) and 'function' (based on ValueSources). These collectors all have a lot of repeated code, and means that if you want to implement your own group definitions, you need to override four or five different classes.
This would be easier to deal with if instead the 'group selection' code was abstracted out into a single interface, and the various collectors were changed to concrete implementations.
Migrated from LUCENE-7701 by Alan Woodward (@romseygeek), resolved Apr 10 2017
Attachments: LUCENE-7701.patch (versions: 2)
Linked issues: