6. (Painless) Scripting

🏡 Home 👈 Prev 👉 Next
⚡  ElasticsearchBook.com is crafted by Jozef Sorocin and powered by:
Scripting enables you to evaluate custom expressions.
As explored in ⬆️2. Insertion & Ingestion, we can modify fields.
And as mentioned in Points Closest to the Origin, we can dynamically score documents and calculate new values on-the-fly.
Scripts can be used in various contexts but are leveraged most often:
  • during updates and reindexing
  • in queries and aggregations where there are no alternatives (like here)

How to Use Scripts

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.

Supported Languages

  • groovy — slow and discontinued
  • painless — a sandboxed and secure general-purpose language extending a subset of Java’s syntax; offers optional typing through the def keyword
  • expression — Lucene expressions — a sandboxed, javascript-like language used for fast custom ranking and sorting but limited to only numeric, boolean, date, and geo_point fields

Script Syntax

Already purchased? Sign in here.