更新上下文

编辑

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