Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 更新API Elasticsearch删除一些嵌套字段_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch 更新API Elasticsearch删除一些嵌套字段,elasticsearch,elasticsearch" /> elasticsearch 更新API Elasticsearch删除一些嵌套字段,elasticsearch,elasticsearch" />

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还支持传递部分文档,这将是 合并到现有文档中(简单递归合并,内部 合并对象,替换核心“键/值”和数组)

如果我提出多个请求,我是否可以轻松地回答我的问题?

这个答案应该有帮助:这个答案应该有帮助: