Introduction
Elasticsearch has a powerful way to extend its capabilities with custom scripts that can be written in several programming languages. The most common ones are Painless, Groovy, JavaScript, and Python.
In this chapter, we will see how it's possible to create custom scoring algorithms, special processed return fields, custom sorting, and complex update operations on records.
The scripting concept of Elasticsearch is an advanced stored procedures system in the NoSQL world; so, for an advanced use of Elasticsearch, it is very important to master it.
Elasticsearch natively provides scripting in Java (a Java code compiled in JAR), Painless, Groovy, Express, and Mustache; but a lot of interesting languages are available as plugins, such as JavaScript and Python.
In older Elasticsearch releases, prior to version 5.0, the official scripting language was Groovy, but for better sandboxing and performance, the official language is now Painless, which is provided by default in Elasticsearch...