summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java')
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java37
1 files changed, 19 insertions, 18 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
index a52f2b2cfb..871cade50c 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
@@ -97,25 +97,26 @@ class DateHistogramAggregator extends BucketsAggregator {
@Override
public void collect(int doc, long bucket) throws IOException {
assert bucket == 0;
- values.setDocument(doc);
- final int valuesCount = values.count();
-
- long previousRounded = Long.MIN_VALUE;
- for (int i = 0; i < valuesCount; ++i) {
- long value = values.valueAt(i);
- long rounded = rounding.round(value - offset) + offset;
- assert rounded >= previousRounded;
- if (rounded == previousRounded) {
- continue;
+ if (values.advanceExact(doc)) {
+ final int valuesCount = values.docValueCount();
+
+ long previousRounded = Long.MIN_VALUE;
+ for (int i = 0; i < valuesCount; ++i) {
+ long value = values.nextValue();
+ long rounded = rounding.round(value - offset) + offset;
+ assert rounded >= previousRounded;
+ if (rounded == previousRounded) {
+ continue;
+ }
+ long bucketOrd = bucketOrds.add(rounded);
+ if (bucketOrd < 0) { // already seen
+ bucketOrd = -1 - bucketOrd;
+ collectExistingBucket(sub, doc, bucketOrd);
+ } else {
+ collectBucket(sub, doc, bucketOrd);
+ }
+ previousRounded = rounded;
}
- long bucketOrd = bucketOrds.add(rounded);
- if (bucketOrd < 0) { // already seen
- bucketOrd = -1 - bucketOrd;
- collectExistingBucket(sub, doc, bucketOrd);
- } else {
- collectBucket(sub, doc, bucketOrd);
- }
- previousRounded = rounded;
}
}
};