Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ Verify this response as well but in a hidden block.

For more details on specifying scripts see <<modules-scripting, script documentation>>.

[[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:
Expand All @@ -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:
Expand Down Expand Up @@ -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:

Expand Down Expand Up @@ -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
Expand All @@ -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.
Expand Down