Elasticsearch deckt die meisten Anwendungsfälle mit deklarativen Query-Bausteinen ab, aber manche Berechnungen lassen sich nicht sinnvoll in ein festes Set an Query-Klauseln pressen: eine dynamische Preisberechnung abhängig von mehreren Feldern, eine individuelle Score-Formel oder ein bedingtes Update, das je nach vorhandenem Wert unterschiedlich reagiert. Für genau diese Fälle existiert Painless, eine eigens für Elasticsearch entwickelte, in einer strikten Sandbox laufende Skriptsprache. Dieser Artikel zeigt, in welchen Kontexten Painless zum Einsatz kommt, welche Performance-Kosten Skripte gegenüber nativen Query-Bausteinen verursachen, und wo die bewusst gezogenen Sicherheitsgrenzen der Sandbox liegen.