在我的ELS中,我有一个具有以下结构的索引:
_index "idx"
_type "ref"
_id "HgyiDUIfiuD"
_source
one "24"
two "45"
three "OK"
我想插入或更新,如果 _id 不存在(我由我自己设置 _id )。但是,当我更新时,我想更新除三个之外的所有属性。
我尝试了一下,但是所有属性都已更新。.
http://example.com:9200/_bulk
{ "update" : {"_id" : "Cr2LjmQB1KXPTyNjT1hT", "_type" : "ref", "_index" : "idx"} }
{ "doc" : {"one" : "24", "two" : "24", "three" : "OK"} }
我尝试使用“脚本”对象,但没有成功。.
感谢您的回答!
答案 0 :(得分:0)
最终由我自己找到解决方案
http://example.com:9200/_bulk
{"update":{"_index":"idx","_type":"ref","_id":"HgyiDUIfiuD"}}
{"script" : { "source": "ctx._source.one = params.one", "params": {"one" : "13"}, "lang" : "painless"}, "upsert" : {"one" : "13", "two" : "NEW"}}
在这里,如果创建的是道具,则使用值“ 13”和“ NEW”创建道具 one 和两个。否则,它只是将一个设置为“ 13”
的更新