更新上下文编辑

更新 操作中使用 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)
包含存储文档中现有字段的 MapList 结构的提取 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
    }
  }
}