stefanvodita commented on code in PR #12547: URL: https://github.com/apache/lucene/pull/12547#discussion_r1335004657
########## lucene/facet/src/java/org/apache/lucene/facet/taxonomy/FloatTaxonomyFacets.java: ########## @@ -37,33 +37,43 @@ abstract class FloatTaxonomyFacets extends TaxonomyFacets { // TODO: also use native hash map for sparse collection, like IntTaxonomyFacets - /** Aggregation function used for combining values. */ - final AssociationAggregationFunction aggregationFunction; + /** Aggregation functions used for combining values. */ + final List<AssociationAggregationFunction> aggregationFunctions; /** Per-ordinal value. */ - float[] values; + float[][] values; + + @Override + boolean hasValues() { + return values != null; + } + + void initializeValueCounters() { + if (values == null) { + values = new float[aggregationFunctions.size()][taxoReader.getSize()]; Review Comment: This is a great point. `IntTaxonomyFacets` has the ability to choose sparse values if the taxonomy is large and there aren't a lot of hits. We can have the same functionality in `FloatTaxonomyFacets`. This was also mentioned recently in [another issue](https://github.com/apache/lucene/issues/12576), which puts into question the way we decide between sparse and dense values. Fundamentally, I think the user of this feature will have to decide if they can make the space for time tradeoff for computing multiple aggregations. -- 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: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org