From 93c72c1bfbd3ccd64ef0159b09f1211117ba6ca5 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Thu, 5 Nov 2020 10:46:57 +0100 Subject: [PATCH] add support for median absolute deviation --- docs/reference/rest-api/common-parms.asciidoc | 1 + .../xpack/transform/integration/TransformPivotRestIT.java | 6 ++++++ .../transform/transforms/pivot/TransformAggregations.java | 2 +- .../transforms/pivot/TransformAggregationsTests.java | 4 ++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/reference/rest-api/common-parms.asciidoc b/docs/reference/rest-api/common-parms.asciidoc index a48cefeacd305..ae7209becfab9 100644 --- a/docs/reference/rest-api/common-parms.asciidoc +++ b/docs/reference/rest-api/common-parms.asciidoc @@ -666,6 +666,7 @@ supported: * <> * <> * <> +* <> * <> * <> * <> diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java index 7322bde2c332e..c46aaff1724d9 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java @@ -654,6 +654,10 @@ public void testBiggerPivot() throws Exception { + " \"avg\": {" + " \"field\": \"stars\"" + " } }," + + " \"variability_rating\": {" + + " \"median_absolute_deviation\": {" + + " \"field\": \"stars\"" + + " } }," + " \"sum_rating\": {" + " \"sum\": {" + " \"field\": \"stars\"" @@ -694,6 +698,8 @@ public void testBiggerPivot() throws Exception { assertEquals(1, XContentMapValues.extractValue("hits.total.value", searchResult)); Number actual = (Number) ((List) XContentMapValues.extractValue("hits.hits._source.avg_rating", searchResult)).get(0); assertEquals(3.878048780, actual.doubleValue(), 0.000001); + actual = (Number) ((List) XContentMapValues.extractValue("hits.hits._source.variability_rating", searchResult)).get(0); + assertEquals(0.0, actual.doubleValue(), 0.000001); actual = (Number) ((List) XContentMapValues.extractValue("hits.hits._source.sum_rating", searchResult)).get(0); assertEquals(159, actual.longValue()); actual = (Number) ((List) XContentMapValues.extractValue("hits.hits._source.cardinality_business", searchResult)).get(0); diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregations.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregations.java index 92524086fa2a3..25ff0abf1fcb1 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregations.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregations.java @@ -65,7 +65,6 @@ public final class TransformAggregations { "histogram", "ip_range", "matrix_stats", - "median_absolute_deviation", "nested", "percentile_ranks", "range", @@ -95,6 +94,7 @@ private TransformAggregations() {} */ enum AggregationType { AVG("avg", DOUBLE), + MEDIAN_ABSOLUTE_DEVIATION("median_absolute_deviation", DOUBLE), CARDINALITY("cardinality", LONG), VALUE_COUNT("value_count", LONG), MAX("max", SOURCE), diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java index c66f62440cb15..6715d61518e7a 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java @@ -32,6 +32,10 @@ public void testResolveTargetMapping() { assertEquals("double", TransformAggregations.resolveTargetMapping("avg", "int")); assertEquals("double", TransformAggregations.resolveTargetMapping("avg", "double")); + // median_absolute_deviation + assertEquals("double", TransformAggregations.resolveTargetMapping("median_absolute_deviation", "int")); + assertEquals("double", TransformAggregations.resolveTargetMapping("median_absolute_deviation", "double")); + // cardinality assertEquals("long", TransformAggregations.resolveTargetMapping("cardinality", "int")); assertEquals("long", TransformAggregations.resolveTargetMapping("cardinality", "double"));