diff --git a/docs/reference/aggregations/metrics/scripted-metric-aggregation.asciidoc b/docs/reference/aggregations/metrics/scripted-metric-aggregation.asciidoc index f73dec1eb8b..1f753be25d1 100644 --- a/docs/reference/aggregations/metrics/scripted-metric-aggregation.asciidoc +++ b/docs/reference/aggregations/metrics/scripted-metric-aggregation.asciidoc @@ -102,6 +102,7 @@ Verify this response as well but in a hidden block. For more details on specifying scripts see <>. +[[scripted-metric-aggregation-return-types]] ==== Allowed return types Whilst any valid script object can be used within a single script, the scripts must return or store in the `state` object only the following types: @@ -111,6 +112,7 @@ Whilst any valid script object can be used within a single script, the scripts m * Map (containing only keys and values of the types listed here) * Array (containing elements of only the types listed here) +[[scripted-metric-aggregation-scope]] ==== Scope of scripts The scripted metric aggregation uses scripts at 4 stages of its execution: @@ -139,7 +141,8 @@ reduce_script:: Executed once on the coordinating node after all shards have In the above example, the `reduce_script` iterates through the `profit` returned by each shard summing the values before returning the final combined profit which will be returned in the response of the aggregation. -==== Worked Example +[[scripted-metric-aggregation-example]] +==== Worked example Imagine a situation where you index the following documents into an index with 2 shards: @@ -255,7 +258,8 @@ produce the response: -------------------------------------------------- // NOTCONSOLE -==== Other Parameters +[[scripted-metric-aggregation-parameters]] +==== Other parameters [horizontal] params:: Optional. An object whose contents will be passed as variables to the `init_script`, `map_script` and `combine_script`. This can be @@ -268,7 +272,8 @@ params:: Optional. An object whose contents will be passed as variable -------------------------------------------------- // NOTCONSOLE -==== Empty Buckets +[[scripted-metric-aggregation-empty-buckets]] +==== Empty buckets If a parent bucket of the scripted metric aggregation does not collect any documents an empty aggregation response will be returned from the shard with a `null` value. In this case the `reduce_script`'s `states` variable will contain `null` as a response from that shard.