Run a script

  • POST also GET /_scripts/painless/_execute
Auth

Runs a script and returns a result. Use this API to build and test scripts, such as when defining a script for a runtime field. This API requires very few dependencies and is especially useful if you don't have permissions to write documents on a cluster.

The API uses several contexts, which control how scripts are run, what variables are available at runtime, and what the return type is.

Each context requires a script, but additional parameters depend on the context you're using for that script.

Request body

context enum · default: painless_test

The context that the script should run in. NOTE: Result ordering in the field contexts is not guaranteed.

Supported values include:

  • painless_test: The default context if no other context is specified.
  • filter: Treats scripts as if they were run inside a script query.
  • score: Treats scripts as if they were run inside a script_score function in a function_score query.
  • boolean_field: The context for boolean fields. The script returns a true or false response.
  • date_field: The context for date fields. emit takes a long value and the script returns a sorted list of dates.
  • double_field: The context for double numeric fields. The script returns a sorted list of double values.
  • geo_point_field: The context for geo-point fields. emit takes two double parameters, the latitude and longitude values, and the script returns an object in GeoJSON format containing the coordinates for the geo point.
  • ip_field: The context for ip fields. The script returns a sorted list of IP addresses.
  • keyword_field: The context for keyword fields. The script returns a sorted list of string values.
  • long_field: The context for long numeric fields. The script returns a sorted list of long values.
  • composite_field: The context for composite runtime fields. The script returns a map of values.
Values: painless_test filter score boolean_field date_field double_field geo_point_field ip_field keyword_field long_field composite_field
script string

The Painless script to run.

Response

application/json
result object required