Is NEST 6.x backwards compatible with Elasticsearch 5.x?

I'm trying to plan our rollout and am wondering if I need to orchestrate my clients with the ES 6 upgrade, or if I can push them out first.


Major versions of NEST are tested against major versions of Elasticsearch; in the case of NEST 6.x, it is tested against the latest build of each Elasticsearch 6.x minor version.

NEST 6.x isn't tested or supported against Elasticsearch 5.x; it may work completely or for the most part for the types of operations that you're running against Elasticsearch, but because of changes at the Elasticsearch API level, reflected in changes within NEST, it may not.

If at all possible, you should try to update the client in tandem with the cluster. I appreciate that this can sometimes be difficult to do.

We are looking at ways in which we can make major upgrades of the client easier, and one that we are exploring is to publish version specific nuget packages to a MyGet feed. The idea here is that we would effectively

  1. rewrite and rename the NEST and Elasticsearch.Net assemblies e.g. Nest.dll -> Nest610.dll
  2. rewrite the direct assembly dependencies
  3. renamespace all the types e.g. Nest.ElasticClient -> Nest610.ElasticClient

This would allow a project to easily reference both NEST 5.x and NEST 6.x whilst upgrading. Then, once the cluster upgrade is complete, you would be able to

  1. Remove the reference to the old client version
  2. Move the new client from the version specific nuget package to an official released package from Nuget
1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.