IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Bucket script aggregation context
editBucket script aggregation context
editUse a Painless script in an
bucket_script
pipeline aggregation
to calculate a value as a result in a bucket.
Variables
edit-
params
(Map
, read-only) -
User-defined parameters passed in as part of the query. The parameters
include values defined as part of the
buckets_path
.
Return
edit- numeric
- The calculated value as the result.
API
editThe standard Painless API is available.
Example
editTo run this example, first follow the steps in context examples.
The painless context in a bucket_script
aggregation provides a params
map. This map contains both
user-specified custom values, as well as the values from other aggregations specified in the buckets_path
property.
This example takes the values from a min and max aggregation, calculates the difference, and adds the user-specified base_cost to the result:
(params.max - params.min) + params.base_cost
Note that the values are extracted from the params
map. In context, the aggregation looks like this:
GET /seats/_search { "size": 0, "aggs": { "theatres": { "terms": { "field": "theatre", "size": 10 }, "aggs": { "min_cost": { "min": { "field": "cost" } }, "max_cost": { "max": { "field": "cost" } }, "spread_plus_base": { "bucket_script": { "buckets_path": { "min": "min_cost", "max": "max_cost" }, "script": { "params": { "base_cost": 5 }, "source": "(params.max - params.min) + params.base_cost" } } } } } } }