一、移除一个字段
POST _reindex
{
"source": {
"index": "source_index"
},
"dest": {
"index": "destination_index"
},
"script": {
"source": "ctx._source.remove('field_to_exclude')"
}
}
二、移除多个字段
POST _reindex
{
"source": {
"index": "source_index"
},
"dest": {
"index": "destination_index"
},
"script": {
"source": """
for (def field : params.fieldsToRemove) {
ctx._source.remove(field);
}
""",
"params": {
"fieldsToRemove": ["field1", "field2", "field3"]
}
}
}
elasticsearch的_reindex根据_id只覆盖一个字段而其他字段不动
POST _reindex
{
"source": {
"index": "index_a",
"query": {
"match_all": {}
}
},
"dest": {
"index": "index_b"
},
"script": {
"source": "ctx._source.AA = ctx._source.AA"
}
}