Some facts to get started: Officially Elastica 3.x only supports Elasticsearch 2.x and Elastica 2.x only Elasticsearch 1.x
The main reason for the above is that ES 2.0 has BC breaks which lead to BC breaks in Elastica. If Elastica would have logic to deal with the different Elasticsearch versions, it would have to know before sending a request, which ES version it is (which it doesn't).
That being said, lets see what we could to to make this migration possible. Here some initial points:
* If you still use facets, you must get rid of them anyways in your code before upgrading.
* In general I would "try" to switch to Elastica 3.x to see what all breaks with elasticsearch 1.x. The good thing about Elastica 3.x is that it will also tell you, which of the code parts will probably not work anymore with elasticsearch 2.x and you will have to change it in advance
Obviously it would be best, if you could do the migration cluster by cluster, also to gain experience with the migration. So are there some applications that only talk to one cluster or is it a monolit that talks to different clusters? If not, you could for example first migrate the logging cluster (if there is one) etc.