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