| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | [[query-dsl-script-query]]=== Script query++++<titleabbrev>Script</titleabbrev>++++Filters documents based on a provided <<modules-scripting-using,script>>. The`script` query is typically used in a <<query-filter-context,filter context>>.WARNING: Using scripts can result in slower search speeds. See<<scripts-and-search-speed>>.[[script-query-ex-request]]==== Example request[source,console]----GET /_search{  "query": {    "bool": {      "filter": {        "script": {          "script": {            "source": "doc['num1'].value > 1",            "lang": "painless"          }        }      }    }  }}----[[script-top-level-params]]==== Top-level parameters for `script``script`::(Required, <<modules-scripting-using, script object>>) Contains a script to runas a query. This script must return a boolean value, `true` or `false`.[[script-query-notes]]==== Notes[[script-query-custom-params]]===== Custom ParametersLike <<query-filter-context,filters>>, scripts are cached for faster execution.If you frequently change the arguments of a script, we recommend you store themin the script's `params` parameter. For example:[source,console]----GET /_search{  "query": {    "bool": {      "filter": {        "script": {          "script": {            "source": "doc['num1'].value > params.param1",            "lang": "painless",            "params": {              "param1": 5            }          }        }      }    }  }}----===== Allow expensive queriesScript queries will not be executed if <<query-dsl-allow-expensive-queries, `search.allow_expensive_queries`>>is set to false.
 |