| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | [[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>>.[[script-query-ex-request]]==== Example request[source,js]----GET /_search{    "query": {        "bool" : {            "filter" : {                "script" : {                    "script" : {                        "source": "doc['num1'].value > 1",                        "lang": "painless"                     }                }            }        }    }}----// CONSOLE[[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,js]----GET /_search{    "query": {        "bool" : {            "filter" : {                "script" : {                    "script" : {                        "source" : "doc['num1'].value > params.param1",                        "lang"   : "painless",                        "params" : {                            "param1" : 5                        }                    }                }            }        }    }}----// CONSOLE
 |