script-query.asciidoc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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,console]
  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. [[script-top-level-params]]
  29. ==== Top-level parameters for `script`
  30. `script`::
  31. (Required, <<modules-scripting-using, script object>>) Contains a script to run
  32. as a query. This script must return a boolean value, `true` or `false`.
  33. [[script-query-notes]]
  34. ==== Notes
  35. [[script-query-custom-params]]
  36. ===== Custom Parameters
  37. Like <<query-filter-context,filters>>, scripts are cached for faster execution.
  38. If you frequently change the arguments of a script, we recommend you store them
  39. in the script's `params` parameter. For example:
  40. [source,console]
  41. ----
  42. GET /_search
  43. {
  44. "query": {
  45. "bool" : {
  46. "filter" : {
  47. "script" : {
  48. "script" : {
  49. "source" : "doc['num1'].value > params.param1",
  50. "lang" : "painless",
  51. "params" : {
  52. "param1" : 5
  53. }
  54. }
  55. }
  56. }
  57. }
  58. }
  59. }
  60. ----