更新Elasticsearch文档

该代码按预期工作。但是,我不想更新第三个国家作为另一个文档,而是要更新第一个文档。

DELETE /test_index

PUT /test_index

PUT /test_index/doc/1

{

"parent": [

{

"name": "India",

"label": "IN"

},

{

"name": "China",

"label": "CN"

}

]

}

PUT /test_index/doc/2

{

"parent": [

{

"name": "Pakistan",

"label": "PK"

}

]

}

这样,文档ID 1将有3个国家:印度,中国和巴基斯坦。我想我需要使用doc_as_upsert参数更新API。但是我不确定如何编写JSON。

回答:

您可以使用update

API进行脚本更新:

curl -XPOST 'localhost:9200/test_index/doc/1/_update' -d '{

"script" : {

"inline": "ctx._source.parent += ['name': name, 'label': label]",

"params" : {

"name" : "Pakistan",

"label": "PK"

}

}

}'

如果要在批量查询中使用它,也可以

curl -XPOST 'localhost:9200/test_index/doc/_bulk' -d '

{ "update" : { "_id" : "1"} }

{ "script" : { "inline": "ctx._source.parent += ['name': name, 'label': label]", "lang" : "groovy", "params" : {"name" : "Pakistan", "label": "PK"}}}

'

以上是 更新Elasticsearch文档 的全部内容, 来源链接: utcz.com/qa/418411.html

回到顶部