Type to search.

Run a script

  • POST also GET /_scripts/painless/_execute
Auth The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability Experimental since 6.3 This functionality is experimental and is not ready for production usage. Experimental features may change or be removed at any time. Elastic will work to fix any issues, but experimental features are not subject to the support SLA of official GA features. Specific Support terms apply. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.

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