如果文档已经存在,我想进行条件更新,如果不存在,我只想插入它。我尝试过类似下面的操作,如果文档已经存在于ES中,它将执行条件更新,但是如果ES中没有文档,它将无法插入
{
"scripted_upsert":true,
"script" : {
"inline": "if(ctx._source.num > params._source.num) {ctx._source = params._source}",
"lang": "painless",
"params" : {
"_source" : {
"num": 7,
"url":"foo.com/bar",
"response":404,
"time":"2014-01-01 12:32"
}
}
},
"upsert" : {}
}
此外,由于我的文档可以包含100个字段,因此我也尝试不在paras和upsert元素中复制相同的文档。