OpenSearch/docs/reference/scripting.asciidoc
James Rodewig 988e8c8fc6
[DOCS] Swap [float] for [discrete] (#60134)
Changes instances of `[float]` in our docs for `[discrete]`.

Asciidoctor prefers the `[discrete]` tag for floating headings:
https://asciidoctor.org/docs/asciidoc-asciidoctor-diffs/#blocks
2020-07-23 12:42:33 -04:00

85 lines
2.1 KiB
Plaintext

[[modules-scripting]]
= Scripting
[partintro]
--
With scripting, you can evaluate custom expressions in {es}. For example, you
could use a script to return "script fields" as part of a search request or
evaluate a custom score for a query.
The default scripting language is <<modules-scripting-painless, `Painless`>>.
Additional `lang` plugins enable you to run scripts written in other languages.
Everywhere a script can be used, you can include a `lang` parameter
to specify the language of the script.
[discrete]
== General-purpose languages
These languages can be used for any purpose in the scripting APIs,
and give the most flexibility.
[cols="<,<,<",options="header",]
|=======================================================================
|Language
|Sandboxed
|Required plugin
|<<modules-scripting-painless, `painless`>>
|yes
|built-in
|=======================================================================
[discrete]
== Special-purpose languages
These languages are less flexible, but typically have higher performance for
certain tasks.
[cols="<,<,<,<",options="header",]
|=======================================================================
|Language
|Sandboxed
|Required plugin
|Purpose
|<<modules-scripting-expression, `expression`>>
|yes
|built-in
|fast custom ranking and sorting
|<<search-template, `mustache`>>
|yes
|built-in
|templates
|<<modules-scripting-engine, `java`>>
|n/a
|you write it!
|expert API
|=======================================================================
[WARNING]
.Scripts and security
=================================================
Languages that are sandboxed are designed with security in mind. However, non-
sandboxed languages can be a security issue, please read
<<modules-scripting-security, Scripting and security>> for more details.
=================================================
--
include::scripting/using.asciidoc[]
include::scripting/fields.asciidoc[]
include::scripting/security.asciidoc[]
include::scripting/painless.asciidoc[]
include::scripting/expression.asciidoc[]
include::scripting/engine.asciidoc[]