ElasticSearch 6.2.2 - 所有活动都是通过 API 调用实现的 - 我们没有设置 Kibana。
我正在尝试将大约 5,000 个文档的一个字段更新为相同的值。现在我只知道如何使用以下 API 调用一次更新一个文档:
网址:
POST http://{{elasticip}}:9200/{{index}}/_doc/{{docid}}/_update?pretty
身体:
{
"doc": { "categories": [ "NEWS" ]}
}
我有大约 5k 个文档,categories
值为null
. 所以我需要做一个更新 API 调用,说更新所有字段categories
字段null
值[ "NEWS" ]
的文档。
这可以通过 API 调用实现吗?
这可以使用查询更新 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"
}
}
}
}
}