javanna opened a new pull request, #16292: URL: https://github.com/apache/lucene/pull/16292
The old TermGroupFacetCollector could not be adapted to CollectorManager: its cross-segment deduplication was fundamentally sequential. At doSetNextReader(), all previously seen (group, facet) pairs were re-looked up in each new segment's ordinal dictionary to rebuild the per-segment SentinelIntSet. That O(pairs × segments) walk cannot be split across concurrent slices, and every unique hit allocated a BytesRef copy in the collection hot path. The replacement design tracks (groupOrd, facetOrd) pairs as packed longs in a per-slice LongHashSet during collection — no BytesRef allocations in the hot path. Ordinals are translated to terms once per segment in LeafCollector.finish(), and reduce() performs global deduplication across all slices via a HashSet<GroupFacetPair>, correctly counting groups whose documents span multiple search slices. All 8 deprecated IndexSearcher#search(Query, Collector) call sites in TestGroupFacetCollector are removed as a result. TermGroupFacetCollector is now deprecated in favour of TermGroupFacetCollectorManager The base class GroupFacetCollector is also now deprecated. Relates to https://github.com/apache/lucene/issues/12892. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
