This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Filter context
editFilter context
editUse a Painless script as a filter in a query to include and exclude documents.
Variables
-
params
(Map
, read-only) - User-defined parameters passed in as part of the query.
-
doc
(Map
, read-only) -
Contains the fields of the current document where each field is a
List
of values.
Return
-
boolean
-
Return
true
if the current document should be returned as a result of the query, andfalse
otherwise.
API
The standard Painless API is available.
Example
To run this example, first follow the steps in context examples.
This script finds all unsold documents that cost less than $25.
doc['sold'].value == false && doc['cost'].value < 25
Defining cost
as a script parameter enables the cost to be configured
in the script query request. For example, the following request finds
all available theatre seats for evening performances that are under $25.
GET seats/_search { "query": { "bool": { "filter": { "script": { "script": { "source": "doc['sold'].value == false && doc['cost'].value < params.cost", "params": { "cost": 25 } } } } } } }