我正在尝试从 ES 1.4 迁移到 ES 5.5。在其中一个索引中,我需要更改字段的名称并将其值转换为大写。我可以通过更改字段名称来重新索引并删除不需要的字段,但在将值转换为大写时需要帮助。
这是我尝试过的
POST _reindex?wait_for_completion=false
{
"source": {
"remote": {
"host": "http://source_ip:17002"
},
"index": "log_event_2017-08-11",
"size": 1000,
"query": {
"match_all": {}
}
},
"dest": {
"index": "logs-ics-2017-08-11"
},
"script": {
"inline": "ctx._source.product = ctx._source.remove(\"product_name\")",
"lang": "painless"
}
}
上面的 POST 请求能够删除“product_name”并使用它的值创建“product”。因此,为了将“产品”文档值大写,我尝试了下面的内联脚本,但它给出了一个 null_pointer_exception。
我是 Elasticsearch 脚本的新手。请帮忙。
"ctx._source.product = ctx._source.remove(\"product_name\");ctx._source.product = doc[\"product\"].toUpperCase()"