summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java')
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java
index f7f2ee5501..bd325b3937 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java
@@ -71,13 +71,14 @@ public class SumAggregator extends NumericMetricsAggregator.SingleValue {
@Override
public void collect(int doc, long bucket) throws IOException {
sums = bigArrays.grow(sums, bucket + 1);
- values.setDocument(doc);
- final int valuesCount = values.count();
- double sum = 0;
- for (int i = 0; i < valuesCount; i++) {
- sum += values.valueAt(i);
+ if (values.advanceExact(doc)) {
+ final int valuesCount = values.docValueCount();
+ double sum = 0;
+ for (int i = 0; i < valuesCount; i++) {
+ sum += values.nextValue();
+ }
+ sums.increment(bucket, sum);
}
- sums.increment(bucket, sum);
}
};
}