scripting.asciidoc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. [[modules-scripting]]
  2. = Scripting
  3. [partintro]
  4. --
  5. With scripting, you can evaluate custom expressions in {es}. For example, you
  6. can use a script to return a computed value as a field or evaluate a custom
  7. score for a query.
  8. The default scripting language is <<modules-scripting-painless,Painless>>.
  9. Additional `lang` plugins are available to run scripts written in other
  10. languages. You can specify the language of the script anywhere that scripts run.
  11. [discrete]
  12. [[scripting-available-languages]]
  13. == Available scripting languages
  14. Painless is purpose-built for {es}, can be used for any purpose in the
  15. scripting APIs, and provides the most flexibility. The other languages are less
  16. flexible, but can be useful for specific purposes.
  17. [cols="<,<,<,<",options="header",]
  18. |========
  19. |Language
  20. |Sandboxed
  21. |Required plugin
  22. |Purpose
  23. |<<modules-scripting-painless,`painless`>>
  24. |{yes-icon}
  25. |Built-in
  26. |Purpose-built for {es}
  27. |<<modules-scripting-expression, `expression`>>
  28. |{yes-icon}
  29. |Built-in
  30. |Fast custom ranking and sorting
  31. |<<search-template, `mustache`>>
  32. |{yes-icon}
  33. |Built-in
  34. |Templates
  35. |<<modules-scripting-engine, `java`>>
  36. |{no-icon}
  37. |You write it!
  38. |Expert API
  39. |========
  40. --
  41. include::scripting/painless.asciidoc[]
  42. include::scripting/using.asciidoc[]
  43. include::scripting/common-script-uses.asciidoc[]
  44. include::scripting/fields.asciidoc[]
  45. include::scripting/security.asciidoc[]
  46. include::scripting/expression.asciidoc[]
  47. include::scripting/engine.asciidoc[]