更新Elasticsearch文档
该代码按预期工作。但是,我不想更新第三个国家作为另一个文档,而是要更新第一个文档。
DELETE /test_indexPUT /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