文档中的ElasticSearch更新字段

bybem2ql  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(423)

在es中,需要更新文档中的现有字段。我可以很容易地在文档中添加新字段。

POST {"doc":{"newFields":"value"}}

-它将向现有文档中添加新字段。但我无法添加这种情况。

{"name":"aa","otherinfo": {"hobbies":["cricket","football"]} }

在这里我需要添加另一个领域教育领域-我怎么做?
假设我需要在现有的爱好中加入篮球
从爱好中删除所有字段,只添加throwball
有什么帮助吗?

wnavrhmk

wnavrhmk1#

请看一下更新api。
你可以只更新一部分文件。例子:

POST test/_doc/1/_update
{
  "doc" : {
    "name" : "new_name"
  }
}

此外,您还可以使用脚本更新文档。示例:
我们可以在标签列表中添加一个标签(注意,如果标签存在,它仍然会添加它,因为它是一个列表):

POST test/_doc/1/_update
{
  "script" : {
    "source": "ctx._source.tags.add(params.tag)",
    "lang": "painless",
    "params" : {
      "tag" : "blue"
    }
  }
}


我们还可以向文档中添加一个新字段:

POST test/_doc/1/_update
{
  "script" : "ctx._source.new_field = 'value_of_new_field'"
}


或从文档中删除字段:

POST test/_doc/1/_update
{
  "script" : "ctx._source.remove('new_field')"
}

还有更多。

相关问题