New

The executive guide to generative AI

Read more
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.

Scripting

edit

The scripting module enables you to use scripts to evaluate custom expressions. 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 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.

General-purpose languages:

edit

These languages can be used for any purpose in the scripting APIs, and give the most flexibility.

Language Sandboxed Required plugin

painless

yes

built-in

Special-purpose languages:

edit

These languages are less flexible, but typically have higher performance for certain tasks.

Language Sandboxed Required plugin Purpose

expression

yes

built-in

fast custom ranking and sorting

mustache

yes

built-in

templates

java

n/a

you write it!

expert API

Scripts and security

Languages that are sandboxed are designed with security in mind. However, non- sandboxed languages can be a security issue, please read Scripting and security for more details.

Was this helpful?
Feedback