IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Update context
editUpdate context
editUse a Painless script in an update operation to add, modify, or delete fields within a single document.
Variables
-
params
(Map
, read-only) - User-defined parameters passed in as part of the query.
-
ctx['op']
(String
) - The name of the operation.
-
ctx['_routing']
(String
, read-only) - The value used to select a shard for document storage.
-
ctx['_index']
(String
, read-only) - The name of the index.
-
ctx['_type']
(String
, read-only) - The type of document within an index.
-
ctx['_id']
(int
, read-only) - The unique document id.
-
ctx['_version']
(int
, read-only) - The current version of the document.
-
ctx['_now']
(long
, read-only) - The current timestamp in milliseconds.
-
ctx['_source']
(Map
) -
Contains extracted JSON in a
Map
andList
structure for the fields existing in a stored document.
Side Effects
-
ctx['op']
-
Use the default of
index
to update a document. Set tonone
to specify no operation ordelete
to delete the current document from the index. -
ctx['_source']
-
Modify the values in the
Map/List
structure to add, modify, or delete the fields of a document.
Return
-
void
- No expected return value.
API
The standard Painless API is available.
Example
To run this example, first follow the steps in context examples.
The following query updates a document to be sold, and sets the cost to the actual price paid after discounts:
POST /seats/_update/3 { "script": { "source": "ctx._source.sold = true; ctx._source.cost = params.sold_cost", "lang": "painless", "params": { "sold_cost": 26 } } }