.NET: Using newer NEST high-level client against previous version of Elasticsearch

NEST: 6.8.6
Elasticsearch: 6.8.23

We're looking to upgrade our Elasticsearch clusters now that we're on ECK (hallelujah!).
Our .NET code uses NEST and I'd like to try the NEST 7.17.5 NuGet package without upgrading our Elasticsearch clusters as we adjust our code for breaking changes (ie. no types) if that's possible. I realize there may be some incompatibilities but my "bot friend" (chat GPT :sweat_smile:) seems to think that's a possibility. Is it hallucinating or is that true?
We'd try it out in our development environments first but could it also be a production-worthy configuration? If not, if we could at least try out our code changes in development environments first w/o upgrading our Elasticsearch cluster in that early stage, that would be very helpful.

@forloop Can you possibly answer this or point me to someone who can? Is there a better forum for NEST-related questions?

Hi @Thomas_Doman

I pinged that internal team. Let's see if someone comes back.

In general, we wouldn't recommend crossing major release versions...

And of course you could always write a little test to help and check out the API... It will probably come down to what you're actually doing with it.

I highly would not recommend using the recommendations from chatGPT... Not because it's a bad thing, but the learning model data that scraped our documents is from like 18 months ago. So you're looking typically at answers that might have been valid 18 months ago.

Have you simply just tried to test it?

Thanks @stephenb, no we haven't tried it yet. We're going through the breaking changes review and upgrade readiness stuff.

In our code project, I'm also making sure we've properly isolated our NEST dependencies. There were a few tweaks there but that job is the only prerequisite to literally just grabbing the latest package, fixing up the code, and pointing it at our development cluster.

I don't think our usage is particularly intricate so I expect it's possible that the functionality we leverage will just work. However, sounds like, even if it does work in our development environments, that's still not a configuration that we'll want to take to production w/o also upgrading ES to 7.x. Anyway, would love to hear thoughts from the internal team.

Yes, I don't trust ChatGPT :laughing: which is why I brought the question here to see what's really possible and what's been tried. Thanks again!

In general.

You want your clients at or behind (hopefully just minor version) the cluster version.

What's your proposing is exactly opposite and a major version at that with a major major change with respect to types.

With beats That configuration now throws an error which you have to manually set and configure to allow that configuration.

I'm not sure if there's something saying built into the language, clients or not.

We'll see if someone else answers, but yeah it's not a best practices configuration for sure.

re: types change - yeah, for sure. Since ES 7.x has to work w/ Lucene 6 indexes and ES 6.8 is definitely aware of the deprecation, I thought it might be possible the "typeless" queries generated by a 7.x client might just work. We'll see.

It may...

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