ElasticSearch 7.x NEST客户端与ES 6.x的兼容性

时间:2019-06-19 12:32:45

标签: c# elasticsearch indexing nest

我们有一些代码不久将需要查询ElasticSearch 6.x和7.x索引。我们目前正在使用NEST与我们的ES实例进行通信,但是从Web上看,似乎在与ES 7.x进行通信时v6 NEST客户端不起作用。显而易见的答案是升级到NEST的v7,但是关于v7 NEST客户端是否向后兼容,我找不到任何信息。

如果我们将NEST客户端升级到与ElasticSearch 7.x兼容的版本,那么该客户端还能与ElasticSearch 6.x实例进行对话吗?

3 个答案:

答案 0 :(得分:2)

您可以找到客户端here的兼容性矩阵。可能会有一些重大更改,并且使用NEST 7.x时您将无法使用elasticsearch6.x。

如果要使用elasticsearch 7.x,则需要安装版本7.0.0beta1的NEST。

enter image description here

答案 1 :(得分:1)

我注意到一些重大变化

带有ES 7.3.1的NEST 6.8:

  • 库中存在一些无法解决的序列化错误,即使用搜索API。
  • 将Include Types = true参数添加到Mappings API的

带有ES 6.8的NEST 7.3.1

  • 部分文档更新的API路由在ES 7中有所不同,NEST客户端无法生成正确的路由来进行更新。
  • 不赞成使用“日期直方图间隔”设置,但不能解决警告问题
  • get映射响应不会反序列化为具有属性的可用C#对象。

几天后,Elasticsearch发布了一个博客,介绍了如何使其工作  https://www.elastic.co/blog/nest-and-elasticsearch-net-upgrading-your-codebase

答案 2 :(得分:0)

基于documentation

  

Elasticsearch 7.0可以读取在6.0版或更高版本中创建的索引。如果存在在6.0之前的版本中创建的索引,则Elasticsearch 7.0节点将不会启动。