Reindex API
Documents are copied from one location to another.
The document source is extracted from the source index and the documents are indexed in the destination index. You can reindex a selection of the documents or transfer all items to the target index.
Reindexing requires that _source be enabled for all documents in the source.
Before invoking _reindex, the destination should be specified as desired. The settings from the source or its related template are not copied when you reindex.
Mappings, shard counts, replicas, and other parameters must be set up ahead of time.
Querry
POST _reindex
{
"source": {
"index": "my-index-000001"
},
"dest": {
"index": "my-new-index-000001"
}
}
OR
curl -X POST "localhost:9200/_reindex?pretty" -H 'Content-Type: application/json' -d'
{
"source": {
"index": "my-index-000001"
},
"dest": {
"index": "my-new-index-000001"
}
}'
_reindex with scripts
We can use Painless scripting to run our querry.
POST _reindex
{
"source": {
"index": "my-index-000001"
},
"dest": {
"index": "my-new-index-000001"
},
"script": {
"inline": "ctx._source.field = Long.parseLong(ctx._source.field)"
}
}
Conclusion
Avoide Reindexing!
If reindexing is absolutely necessary, this Querry can be used.
If we need to convert one data type to another, we may use scripts to our benefit.
If you are familiar with pipelines, we can do much more sophisticated tasks with ease.