更新上下文

编辑

更新 操作中使用 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
    }
  }
}