ES 1.4에서 ES 5.5로 마이그레이션하려고합니다. 인덱스 중 하나에서 필드의 이름을 변경하고 값을 대문자으로 변환해야합니다. 필자는 필드 이름의 변경으로 다시 색인을 생성하고 원치 않는 필드를 제거 할 수 있지만 값을 대문자로 변환하는 데 도움이 필요합니다.reindex를 사용하는 동안 대문자로 변환하고 특정 필드를 삭제하려면 어떻게해야합니까?
이 내가 위의 POST 요청이이 값입니다으로 "제품"을 "PRODUCT_NAME"를 제거하고 생성 할 수 있습니다
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"
}
}
을 시도하는 것이다. 그래서 "제품"docs 값을 대문자로하려면 인라인 스크립트 아래에서 시도했지만 null_pointer_exception을 제공합니다.
나는 Elasticsearch 스크립팅을 처음 사용합니다. 도와주세요. 당신이 _reindex
API를 실행하기 전에
"ctx._source.product = ctx._source.remove(\"product_name\");ctx._source.product = doc[\"product\"].toUpperCase()"