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: [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]