ぐぐるとscriptで+= を使う方法ばかりでてくるんですが、 Elasticsearch 6.x だと動かなかったので Elasticsearch 6.xで動く方法をメモしときます。
方法だけ先に書くと下記でいけました。
"script": "ctx._source.フィールド名.add(追加する値)"
例
サンプルマッピング
PUT sample
{
"mappings":{
"sample":{
"properties":{
"years":{
"type": "integer"
}
}
}
}
}
データ登録
POST sample/sample/1
{
"years" : [2000]
}
アップデートで2021を追加
POST sample/sample/1/_update
{
"script" : "ctx._source.years.add(2021)"
}
結果確認
GET sample/sample/1
{
"_index": "sample",
"_type": "sample",
"_id": "1",
"_version": 2,
"found": true,
"_source": {
"years": [
2000,
2021
]
}
}