mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
Changes: * Updates the example Painless script to be valid and aligns it with the example in [How to write a script](https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-using.html#script-stored-scripts). * Adds a hidden snippets to delete the script for cleanup. Relates to https://github.com/elastic/elasticsearch/issues/83038
100 lines
2.4 KiB
Text
100 lines
2.4 KiB
Text
[[create-stored-script-api]]
|
|
=== Create or update stored script API
|
|
++++
|
|
<titleabbrev>Create or update stored script</titleabbrev>
|
|
++++
|
|
|
|
Creates or updates a <<script-stored-scripts,stored script>> or
|
|
<<search-template,search template>>.
|
|
|
|
[source,console]
|
|
----
|
|
PUT _scripts/my-stored-script
|
|
{
|
|
"script": {
|
|
"lang": "painless",
|
|
"source": "Math.log(_score * 2) + params['my_modifier']"
|
|
}
|
|
}
|
|
----
|
|
|
|
////
|
|
[source,console]
|
|
----
|
|
DELETE _scripts/my-stored-script
|
|
----
|
|
// TEST[continued]
|
|
////
|
|
|
|
[[create-stored-script-api-request]]
|
|
==== {api-request-title}
|
|
|
|
`PUT _scripts/<script-id>`
|
|
|
|
`POST _scripts/<script-id>`
|
|
|
|
`PUT _scripts/<script-id>/<context>`
|
|
|
|
`POST _scripts/<script-id>/<context>`
|
|
|
|
[[create-stored-script-api-prereqs]]
|
|
==== {api-prereq-title}
|
|
|
|
* If the {es} {security-features} are enabled, you must have the `manage`
|
|
<<privileges-list-cluster,cluster privilege>> to use this API.
|
|
|
|
[[create-stored-script-api-path-params]]
|
|
==== {api-path-parms-title}
|
|
|
|
`<script-id>`::
|
|
(Required, string)
|
|
Identifier for the stored script or search template. Must be unique within the
|
|
cluster.
|
|
|
|
`<context>`::
|
|
(Optional, string)
|
|
Context in which the script or search template should run. To prevent errors,
|
|
the API immediately compiles the script or template in this context.
|
|
|
|
[[create-stored-script-api-query-params]]
|
|
==== {api-query-parms-title}
|
|
|
|
`context`::
|
|
(Optional, string)
|
|
Context in which the script or search template should run. To prevent errors,
|
|
the API immediately compiles the script or template in this context.
|
|
+
|
|
If you specify both this and the `<context>` request path parameter, the API
|
|
uses the request path parameter.
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=timeoutparms]
|
|
|
|
[role="child_attributes"]
|
|
[[create-stored-script-api-request-body]]
|
|
==== {api-request-body-title}
|
|
|
|
`script`::
|
|
(Required, object)
|
|
Contains the script or search template, its parameters, and its language.
|
|
+
|
|
.Properties of `script`
|
|
[%collapsible%open]
|
|
====
|
|
`lang`::
|
|
(Required, string)
|
|
<<scripting-available-languages,Script language>>. For search templates, use
|
|
`mustache`.
|
|
|
|
`source`::
|
|
(Required, string or object)
|
|
For scripts, a string containing the script.
|
|
+
|
|
For search templates, an object containing the search template. The object
|
|
supports the same parameters as the <<search-search,search API>>'s request body.
|
|
Also supports https://mustache.github.io/[Mustache] variables. See
|
|
<<search-template>>.
|
|
|
|
`params`::
|
|
(Optional, object)
|
|
Parameters for the script or search template.
|
|
====
|