.. _es-guide-reference-query-dsl-script-filter: ============= Script Filter ============= A filter allowing to define :ref:`scripts ` as filters. For example: .. code-block:: js "filtered" : { "query" : { ... }, "filter" : { "script" : { "script" : "doc['num1'].value > 1" } } } Custom Parameters ================= Scripts are compiled and cached for faster execution. If the same script can be used, just with different parameters provider, it is preferable to use the ability to pass parameters to the script itself, for example: .. code-block:: js "filtered" : { "query" : { ... }, "filter" : { "script" : { "script" : "doc['num1'].value > param1" "params" : { "param1" : 5 } } } } Caching ======= The result of the filter is not cached by default. The `_cache` can be set to `true` to cache the *result* of the filter. This is handy when the same script and parameters are used on several (many) other queries. Note, the process of caching the first execution is higher when caching (since it needs to satisfy different queries).