diff --git a/lucene/facet/src/java/org/apache/lucene/facet/LongValueFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/LongValueFacetCounts.java index 71ec7cad883..864e2265cf2 100644 --- a/lucene/facet/src/java/org/apache/lucene/facet/LongValueFacetCounts.java +++ b/lucene/facet/src/java/org/apache/lucene/facet/LongValueFacetCounts.java @@ -162,14 +162,14 @@ public class LongValueFacetCounts extends Facets { if (limit > 0) { totCount++; } - long previousValue = 0; + long previousValue = -1; for (int i = 0; i < limit; i++) { long value = multiValues.nextValue(); // do not increment the count for duplicate values - if (i == 0 || value != previousValue) { + if (value != previousValue) { increment(value); + previousValue = value; } - previousValue = value; } } } @@ -214,14 +214,14 @@ public class LongValueFacetCounts extends Facets { if (limit > 0) { totCount++; } - long previousValue = 0; + long previousValue = -1; for (int i = 0; i < limit; i++) { long value = multiValues.nextValue(); // do not increment the count for duplicate values - if (i == 0 || value != previousValue) { + if (value != previousValue) { increment(value); + previousValue = value; } - previousValue = value; } } } diff --git a/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetCounts.java index 29461f01cf0..3f56c78fa3a 100644 --- a/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetCounts.java +++ b/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetCounts.java @@ -193,8 +193,13 @@ abstract class RangeFacetCounts extends Facets { totCount++; } else { counter.startMultiValuedDoc(); + long previous = -1; for (int j = 0; j < limit; j++) { - counter.addMultiValued(mapDocValue(multiValues.nextValue())); + long val = mapDocValue(multiValues.nextValue()); + if (val != previous) { + counter.addMultiValued(val); + previous = val; + } } if (counter.endMultiValuedDoc()) { totCount++;