更新上下文
编辑更新上下文编辑
在 更新 操作中使用 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 } } }