This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Painless Guide
editPainless Guide
editPainless 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 jump start into Painless, see A Brief Painless Walkthrough. For a detailed description of the Painless syntax and language features, see the Painless Language Specification.
You can use Painless anywhere scripts are used in Elasticsearch. Painless provides:
- Fast performance: Painless scripts run several times faster than the alternatives.
- Safety: Fine-grained allowlist 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 a subset of Java’s syntax to provide additional scripting language features.
- Optimizations: Designed specifically for Elasticsearch scripting.