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

groovy

no

built-in

javascript

no

lang-javascript

python

no

lang-python

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.