elasticsearch 更新API Elasticsearch删除一些嵌套字段
将以下文档想象到我的索引中:
elasticsearch 更新API Elasticsearch删除一些嵌套字段,
elasticsearch,
elasticsearch,将以下文档想象到我的索引中: PUT test POST test/_doc/1 { "name": "old_name", "data": { "foo": "bar", "lol": "alright" }, "collections": ["first", "second"] } 我想将我的文档转换为: { "name" : "new_name", "data": { "foo": "lol" }, "coll
PUT test
POST test/_doc/1
{
"name": "old_name",
"data": {
"foo": "bar",
"lol": "alright"
},
"collections": ["first", "second"]
}
我想将我的文档转换为:
{
"name" : "new_name",
"data": {
"foo": "lol"
},
"collections": ["first", "second"]
}
问题是,如果我像下面这样使用更新API:
POST test/_doc/1/_update
{
"doc" : {
"name" : "new_name",
"data": {
"foo": "lol"
}
}
}
该文档变为
{
"name": "new_name",
"data": {
"foo": "lol",
"lol": "alright"
},
"collections": [
"first",
"second"
]
}
而“lol”
属性尚未删除
如果更新请求中不存在,我只希望删除嵌套在数据
键中的所有属性的请求被删除,但我希望保留其他属性(如集合
键)
我知道ElasticSearch文档中说:
更新API还支持传递部分文档,这将是
合并到现有文档中(简单递归合并,内部
合并对象,替换核心“键/值”和数组)
如果我提出多个请求,我是否可以轻松地回答我的问题?这个答案应该有帮助:这个答案应该有帮助: