scripting.asciidoc 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. [[modules-scripting]]
  2. == Scripting
  3. The scripting module enables you to use scripts to evaluate custom
  4. expressions. For example, you could use a script to return "script fields"
  5. as part of a search request or evaluate a custom score for a query.
  6. TIP: Elasticsearch now has a built-in scripting language called _Painless_
  7. that provides a more secure alternative for implementing
  8. scripts for Elasticsearch. We encourage you to try it out --
  9. for more information, see <<modules-scripting-painless, Painless Scripting Language>>.
  10. The default scripting language is http://groovy-lang.org/[groovy].
  11. Additional `lang` plugins enable you to run scripts written in other languages.
  12. Everywhere a script can be used, you can include a `lang` parameter
  13. to specify the language of the script.
  14. [float]
  15. === General-purpose languages:
  16. These languages can be used for any purpose in the scripting APIs,
  17. and give the most flexibility.
  18. [cols="<,<,<",options="header",]
  19. |=======================================================================
  20. |Language
  21. |Required plugin
  22. |<<modules-scripting-painless, `painless`>>
  23. |built-in
  24. |<<modules-scripting-groovy, `groovy`>>
  25. |built-in
  26. |{plugins}/lang-javascript.html[`javascript`]
  27. |{plugins}/lang-javascript.html[`lang-javascript`]
  28. |{plugins}/lang-python.html[`python`]
  29. |{plugins}/lang-python.html[`lang-python`]
  30. |=======================================================================
  31. [float]
  32. === Special-purpose languages:
  33. These languages are less flexible, but typically have higher performance for
  34. certain tasks.
  35. [cols="<,<,<,<",options="header",]
  36. |=======================================================================
  37. |Language
  38. |Required plugin
  39. |Purpose
  40. |<<modules-scripting-expression, `expression`>>
  41. |built-in
  42. |fast custom ranking and sorting
  43. |<<search-template, `mustache`>>
  44. |built-in
  45. |templates
  46. |<<modules-scripting-native, `java`>>
  47. |you write it!
  48. |expert API
  49. |=======================================================================
  50. =================================================
  51. include::scripting/using.asciidoc[]
  52. include::scripting/fields.asciidoc[]
  53. include::scripting/security.asciidoc[]
  54. include::scripting/groovy.asciidoc[]
  55. include::scripting/painless.asciidoc[]
  56. include::scripting/expression.asciidoc[]
  57. include::scripting/native.asciidoc[]
  58. include::scripting/advanced-scripting.asciidoc[]