ElasticSearch 6.2.2在Linux上--所有通过API调用实现的活动--我们没有设置Kibana。
我正在尝试更新一个包含大约5,000份文件的字段,使其成为相同的值。现在,我只知道如何使用以下API调用一次更新一个文档:
网址:
POST http://{{elasticip}}:9200/{{index}}/_doc/{{docid}}/_update?prettyBody:
{
"doc": { "categories": [ "NEWS" ]}
}我有大约5k个文档,其categories值为null。因此,我需要做一个更新API调用,它说更新所有文档,其中categories字段是null,值为[ "NEWS" ]。
这是通过API调用实现的吗?
发布于 2018-09-24 16:31:57
这可以使用按查询API更新来实现。
POST your-index/_update_by_query
{
"script": {
"source": "ctx._source.categories = params.categories",
"lang": "painless",
"params": {
"categories": ["NEWS"]
}
},
"query": {
"bool": {
"must_not": {
"exists": {
"field": "categories"
}
}
}
}
}https://stackoverflow.com/questions/52483606
复制相似问题