一、需求
项目中需要实现删除文档的一个field以及删除指定field的一个属性.
以文档test/document/1为例:
{
"_index": "test",
"_type": "document",
"_id": "1",
"_score": 1,
"_source": {
"class": "com.test.data",
"id": 1,
"items": [{
"class": "com.test.data",
"id": 1
}],
"lastUpdated": "2016-07-22T11:26:56Z",
"processInstance": {
"class": "com.test.data",
"id": 1
},
"tianshu": 0.5,
"bianhao": "askaa3333a"
}
}
删除”bianhao”就是删除一个field,删除”processInstance”的”id”就是删除field的一个属性.
二、删除field
client.prepareUpdate("test", "document", "1").setScript(new Script( "ctx._source.remove(\"bianhao\")",ScriptService.ScriptType.INLINE, null, null)).get();
三、删除field的属性
client.prepareUpdate("test", "document", "1").setScript(new Script( "ctx._source.processInstance.remove(\"id\")",ScriptService.ScriptType.INLINE, null, null)).get();
四、fild属性为数组
暂时没有找到方法,待更新.