From eea010b40863f1577992a6a010c4c86e282527a0 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux <tlrx.dev@gmail.com> Date: Tue, 30 May 2017 10:16:08 +0200 Subject: [PATCH] Add doc_count to ParsedMatrixStats (#24952) This commit adds support in ParsedMatrixStats for parsing the doc_count field. Related to #24776 --- .../aggregations/matrix/stats/ParsedMatrixStats.java | 10 +++++++++- .../matrix/stats/InternalMatrixStatsTests.java | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/ParsedMatrixStats.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/ParsedMatrixStats.java index 62b51a8dd93..a0b9224ad0d 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/ParsedMatrixStats.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/ParsedMatrixStats.java @@ -41,14 +41,20 @@ public class ParsedMatrixStats extends ParsedAggregation implements MatrixStats private final Map<String, Map<String, Double>> covariances = new HashMap<>(); private final Map<String, Map<String, Double>> correlations = new HashMap<>(); + private long docCount; + @Override public String getType() { return MatrixStatsAggregationBuilder.NAME; } + private void setDocCount(long docCount) { + this.docCount = docCount; + } + @Override public long getDocCount() { - throw new UnsupportedOperationException(); + return docCount; } @Override @@ -97,6 +103,7 @@ public class ParsedMatrixStats extends ParsedAggregation implements MatrixStats @Override protected XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException { + builder.field(CommonFields.DOC_COUNT.getPreferredName(), getDocCount()); if (counts != null && counts.isEmpty() == false) { builder.startArray(InternalMatrixStats.Fields.FIELDS); for (String fieldName : counts.keySet()) { @@ -148,6 +155,7 @@ public class ParsedMatrixStats extends ParsedAggregation implements MatrixStats new ObjectParser<>(ParsedMatrixStats.class.getSimpleName(), true, ParsedMatrixStats::new); static { declareAggregationFields(PARSER); + PARSER.declareLong(ParsedMatrixStats::setDocCount, CommonFields.DOC_COUNT); PARSER.declareObjectArray((matrixStats, results) -> { for (ParsedMatrixStatsResult result : results) { final String fieldName = result.name; diff --git a/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStatsTests.java b/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStatsTests.java index 13c67b9dbb3..a6c6ed834d8 100644 --- a/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStatsTests.java +++ b/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStatsTests.java @@ -133,8 +133,7 @@ public class InternalMatrixStatsTests extends InternalAggregationTestCase<Intern assertTrue(parsedAggregation instanceof ParsedMatrixStats); ParsedMatrixStats actual = (ParsedMatrixStats) parsedAggregation; - //norelease add parsing logic for doc count and enable this test once elastic/elasticsearch#24776 is merged - //assertEquals(expected.getDocCount(), actual.getDocCount()); + assertEquals(expected.getDocCount(), actual.getDocCount()); for (String field : fields) { assertEquals(expected.getFieldCount(field), actual.getFieldCount(field));