[ https://issues.apache.org/jira/browse/LUCENE-7701?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alan Woodward updated LUCENE-7701: ---------------------------------- Attachment: LUCENE-7701.patch This patch also refactors the second-pass collector into a concrete class that accepts a GroupReducer. GroupReducers return a Collector instance for each group that is to be reduced, so for example the TopGroupsCollector will create a TopDocsCollector for each group. Now if you want to create a new type of group (a set of ranges over a DoubleValuesSource, for example) you just need to create a GroupSelector implementation; and if you want to create a new type of group summarizer (say some statistics over a group), then you create a GroupReducer implementation. There's a failing test in Solr that I still need to track down, but I think this is a much nicer grouping interface. It is not at all backwards compatible, so I'd be targeting this at 7.0. cc [~martijn.v.groningen] > Refactor grouping collectors > ---------------------------- > > Key: LUCENE-7701 > URL: https://issues.apache.org/jira/browse/LUCENE-7701 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Alan Woodward > Attachments: LUCENE-7701.patch, LUCENE-7701.patch > > > 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. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org