OpenSearch/docs/painless/painless-contexts/painless-metric-agg-map-con...

48 lines
1.7 KiB
Plaintext
Raw Normal View History

[[painless-metric-agg-map-context]]
=== Metric aggregation map context
Use a Painless script to
{ref}/search-aggregations-metrics-scripted-metric-aggregation.html[map]
values for use in a scripted metric aggregation. A map script is run once per
collected document following an optional
<<painless-metric-agg-init-context, initialization script>> and is required as
part of a full metric aggregation.
*Variables*
`params` (`Map`, read-only)::
User-defined parameters passed in as part of the query.
`state` (`Map`)::
`Map` used to add values for processing in a
<<painless-metric-agg-map-context, combine script>> or to be returned from the aggregation.
`doc` (`Map`, read-only)::
Contains the fields of the current document where each field is a
`List` of values.
`_score` (`double` read-only)::
The similarity score of the current document.
*Side Effects*
`state` (`Map`)::
Use this `Map` to add values for processing in a combine script.
Additional values must be of the type `Map`, `List`, `String` or
primitive. The same `state` `Map` is shared between all aggregated documents
on a given shard. If an initialization script is provided as part of the
aggregation then values added from the initialization script are
available. If no combine script is specified, values must be
directly stored in `state` in a usable form. If no combine script and no
<<painless-metric-agg-reduce-context, reduce script>> are specified, the
`state` values are used as the result.
*Return*
`void`::
No expected return value.
*API*
The standard <<painless-api-reference, Painless API>> is available.