scripting.asciidoc 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. The default scripting language is <<modules-scripting-painless, `Painless`>>.
  7. Additional `lang` plugins enable you to run scripts written in other languages.
  8. Everywhere a script can be used, you can include a `lang` parameter
  9. to specify the language of the script.
  10. [float]
  11. === General-purpose languages:
  12. These languages can be used for any purpose in the scripting APIs,
  13. and give the most flexibility.
  14. [cols="<,<,<",options="header",]
  15. |=======================================================================
  16. |Language
  17. |Sandboxed
  18. |Required plugin
  19. |<<modules-scripting-painless, `painless`>>
  20. |yes
  21. |built-in
  22. |<<modules-scripting-groovy, `groovy`>>
  23. |<<modules-scripting-security, no>>
  24. |built-in
  25. |{plugins}/lang-javascript.html[`javascript`]
  26. |<<modules-scripting-security, no>>
  27. |{plugins}/lang-javascript.html[`lang-javascript`]
  28. |{plugins}/lang-python.html[`python`]
  29. |<<modules-scripting-security, no>>
  30. |{plugins}/lang-python.html[`lang-python`]
  31. |=======================================================================
  32. [float]
  33. === Special-purpose languages:
  34. These languages are less flexible, but typically have higher performance for
  35. certain tasks.
  36. [cols="<,<,<,<",options="header",]
  37. |=======================================================================
  38. |Language
  39. |Sandboxed
  40. |Required plugin
  41. |Purpose
  42. |<<modules-scripting-expression, `expression`>>
  43. |yes
  44. |built-in
  45. |fast custom ranking and sorting
  46. |<<search-template, `mustache`>>
  47. |yes
  48. |built-in
  49. |templates
  50. |<<modules-scripting-native, `java`>>
  51. |n/a
  52. |you write it!
  53. |expert API
  54. |=======================================================================
  55. [WARNING]
  56. .Scripts and security
  57. =================================================
  58. Languages that are sandboxed are designed with security in mind. However, non-
  59. sandboxed languages can be a security issue, please read
  60. <<modules-scripting-security, Scripting and security>> for more details.
  61. =================================================
  62. include::scripting/using.asciidoc[]
  63. include::scripting/fields.asciidoc[]
  64. include::scripting/security.asciidoc[]
  65. include::scripting/groovy.asciidoc[]
  66. include::scripting/painless.asciidoc[]
  67. include::scripting/painless-syntax.asciidoc[]
  68. include::scripting/expression.asciidoc[]
  69. include::scripting/native.asciidoc[]
  70. include::scripting/advanced-scripting.asciidoc[]