script-query.asciidoc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. [[query-dsl-script-query]]
  2. === Script query
  3. ++++
  4. <titleabbrev>Script</titleabbrev>
  5. ++++
  6. Filters documents based on a provided <<modules-scripting-using,script>>. The
  7. `script` query is typically used in a <<query-filter-context,filter context>>.
  8. [[script-query-ex-request]]
  9. ==== Example request
  10. [source,js]
  11. ----
  12. GET /_search
  13. {
  14. "query": {
  15. "bool" : {
  16. "filter" : {
  17. "script" : {
  18. "script" : {
  19. "source": "doc['num1'].value > 1",
  20. "lang": "painless"
  21. }
  22. }
  23. }
  24. }
  25. }
  26. }
  27. ----
  28. // CONSOLE
  29. [[script-top-level-params]]
  30. ==== Top-level parameters for `script`
  31. `script`::
  32. (Required, <<modules-scripting-using, script object>>) Contains a script to run
  33. as a query. This script must return a boolean value, `true` or `false`.
  34. [[script-query-notes]]
  35. ==== Notes
  36. [[script-query-custom-params]]
  37. ===== Custom Parameters
  38. Like <<query-filter-context,filters>>, scripts are cached for faster execution.
  39. If you frequently change the arguments of a script, we recommend you store them
  40. in the script's `params` parameter. For example:
  41. [source,js]
  42. ----
  43. GET /_search
  44. {
  45. "query": {
  46. "bool" : {
  47. "filter" : {
  48. "script" : {
  49. "script" : {
  50. "source" : "doc['num1'].value > params.param1",
  51. "lang" : "painless",
  52. "params" : {
  53. "param1" : 5
  54. }
  55. }
  56. }
  57. }
  58. }
  59. }
  60. }
  61. ----
  62. // CONSOLE