更新上下文
编辑更新上下文
编辑在 更新 操作中使用 Painless 脚本,可在单个文档中添加、修改或删除字段。
变量
-
params
(Map
,只读) - 作为查询的一部分传递的用户定义参数。
-
ctx['op']
(String
) - 操作的名称。
-
ctx['_routing']
(String
,只读) - 用于选择文档存储分片的数值。
-
ctx['_index']
(String
,只读) - 索引的名称。
-
ctx['_id']
(String
,只读) - 唯一的文档 ID。
-
ctx['_version']
(int
,只读) - 文档的当前版本。
-
ctx['_now']
(long
,只读) - 当前时间戳(以毫秒为单位)。
-
ctx['_source']
(Map
) - 包含存储在文档中字段的
Map
和List
结构的提取 JSON。
副作用
-
ctx['op']
- 使用默认值
index
更新文档。设置为none
表示不执行任何操作,或设置为delete
从索引中删除当前文档。 -
ctx['_source']
- 修改
Map/List
结构中的值,以添加、修改或删除文档的字段。
返回值
-
void
- 没有预期的返回值。
API
标准的 Painless API 可用。
示例
要运行此示例,请首先按照 上下文示例数据 中的步骤操作。
以下查询将文档更新为“待售”,并将成本设置为折扣后实际支付的价格。
POST /seats/_update/3 { "script": { "source": "ctx._source.sold = true; ctx._source.cost = params.sold_cost", "lang": "painless", "params": { "sold_cost": 26 } } }