我在ElasticSearch中将以下文档编入索引
{
"myObj":{
"name": "test",
"elements": {
"val": 1
}
}
}
我想进行部分更新以清空嵌套属性elements
,所以我应该是elements": {}
;因此,我尝试发送部分更新:
POST /entities/_doc/1/_update
{
"doc" : {
"myObj":{
"elements": {}
}
}
}
但这不会执行任何操作,并且文档保持不变。如何使用部分更新清空文档中的嵌套对象?
答案 0 :(得分:0)
您只需将值设置为null
即可完全清空对象。
POST /entities/_doc/1/_update
{
"doc" : {
"myObj":{
"elements": null
}
}
}
答案 1 :(得分:0)
我建议像这样进行脚本更新,它将起作用:
POST entities/_doc/1/_update
{
"script" : {
"source": """
ctx._source.myObj.elements.clear();
ctx._source.myObj.name = params.name;
""",
"params": {
"name": "newTest"
}
}
}