12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- [role="xpack"]
- [[transform-script]]
- === Script transform
- A <<transform,transform>> that executes a script on the current payload in the
- watch execution context and replaces it with a newly generated one. The following
- snippet shows how a simple script transform can be defined on the watch level:
- TIP: The `script` transform is often useful when used in combination with the
- <<transform-search,`search`>> transform, where the script can extract only
- the significant data from a search result, and by that, keep the payload
- minimal. This can be achieved with the <<transform-chain,`chain`>>
- transform.
- [source,js]
- --------------------------------------------------
- {
- "transform" : {
- "script" : "return [ 'time' : ctx.trigger.scheduled_time ]" <1>
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- <1> A simple `painless` script that creates a new payload with a single `time`
- field holding the scheduled time.
- NOTE: The executed script may either return a valid model that is the equivalent
- of a Java(TM) Map or a JSON object (you will need to consult the
- documentation of the specific scripting language to find out what this
- construct is). Any other value that is returned will be assigned and
- accessible to/via the `_value` variable.
- The `script` attribute may hold a string value in which case it will be treated
- as an inline script and the default elasticsearch script languages will be assumed
- (as described in <<modules-scripting>>). You can
- use the other scripting languages supported by Elasticsearch. For this, you need
- to set the `script` field to an object describing the script and its language.
- The following table lists the possible settings that can be configured:
- [[transform-script-settings]]
- .Script transform settings
- [options="header"]
- |======
- | Name |Required | Default | Description
- | `inline` | yes | - | When using an inline script, this field holds
- the script itself.
- | `id` | yes | - | When referring to a stored script, this
- field holds the id of the script.
- | `lang` | no | `painless` | The script language
- | `params` | no | - | Additional parameters/variables that are
- accessible by the script
- |======
- When using the object notation of the script, one (and only one) of `inline`,
- or `id` fields must be defined.
- NOTE: In addition to the provided `params`, the scripts also have access to the
- <<watch-execution-context,standard watch execution context parameters>>.
|