Is it possible to reindex across clusters? In this case, I'm trying to migrate from ElasticCloud on Heroku to a different cluster on ElasticCloud on AWS.
5.0 will have reindex-from-remote. I don't know how to make the clusters accessible to each other:
I imagine you could handle the reindex using logstash or the any of the clients that automate it (perl does).
You are probably better of doing a snapshot to an S3 bucket from ElasticCloud Heroku and restoring in ElasticCloud AWS.
That'd be faster than reindexing.
The snapshot restore should definitely be faster - but if you're set on reindexing you can rig that up pretty easily in the python client. See https://elasticsearch-py.readthedocs.io/en/master/helpers.html#reindex
from elasticsearch import Elasticsearch from elasticsearch.helpers import reindex es_source=Elasticsearch("source_system:9200") es_destination=Elasticsearch("destination_system:9200") reindex(es_source, "my_source_index", "my_destination_index", target_client=es_destination)
That's what I've done as I'm still stuck on 1.7.x - though the 2.3 reindex API looks handy.
Nik, when doing a local cluster->local cluster reindexing, is the reindex API in 2.3 faster/more efficient than the python client's approach, if the python client is run directly on the host cluster?
Marginally but not enough so that I'd bend over backwards to use it. It
might get faster at some point with the parallel scrolls added in 5.0 when
I get around to implementing it in reindex.