Painless Scripting Language

edit

Painless Scripting Languageedit

The Painless scripting language is new and is still marked as experimental. The syntax or API may be changed in the future in non-backwards compatible ways if required.

Painless is a simple, secure scripting language designed specifically for use with Elasticsearch. It is the default scripting language for Elasticsearch and can safely be used for inline and stored scripts. For a detailed description of the Painless syntax and language features, see the Painless Language Specification.

You can use Painless anywhere scripts can be used in Elasticsearch. Painless provides:

  • Fast performance: Painless scripts run several times faster than the alternatives.
  • Safety: Fine-grained whitelist with method call/field granularity. See the Painless API Reference for a complete list of available classes and methods.
  • Optional typing: Variables and parameters can use explicit types or the dynamic def type.
  • Syntax: Extends Java’s syntax to provide Groovy-style scripting language features that make scripts easier to write.
  • Optimizations: Designed specifically for Elasticsearch scripting.

Ready to start scripting with Painless? See Getting Started with Painless in the guide to the Painless Scripting Language.