You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用@elastic/elasticsearch提示服务器非支持的Elasticsearch发行版

报错诱因
  • 该报错是Elastic官方在7.11及之后的客户端版本中加入的发行版校验逻辑导致的:该逻辑会检测服务端返回的响应头里的X-Elastic-Product字段,如果不存在或者值不是Elasticsearch,就会抛出这个错误。
  • 你使用的是AWS托管的Elasticsearch服务(OpenSearch前身),AWS的Elasticsearch/OpenSearch服务默认不会返回X-Elastic-Product响应头,触发了客户端的校验规则。
  • 你执行yarn upgrade的时候,虽然package.json里锁的是7.5.0,但版本号规则允许安装次版本号更新的兼容版本,实际安装的客户端版本已经升级到了7.11以上的版本,哪怕你后续升到7.14,这个校验逻辑依然存在,所以报错不会消失。
解决方法
  • 方案一:关闭客户端的发行版校验,初始化客户端的时候添加配置项productCheck: false即可,示例代码如下:
const { Client } = require('@elastic/elasticsearch')
const client = new Client({
  node: '你的AWS ES服务地址',
  auth: { /* 原有鉴权配置 */ },
  productCheck: false // 新增这一行关闭校验
})

该方案改动最小,不需要修改依赖版本,也不影响原有功能。

  • 方案二:锁定@elastic/elasticsearch客户端版本到7.10.2及以下的版本,这个版本之前没有加入发行版校验逻辑。先修改package.json里的版本号为7.10.2,然后删除node_modules和yarn.lock,重新执行yarn install即可生效。
  • 方案三:如果后续要兼容AWS OpenSearch服务的新特性,可以改用AWS官方维护的OpenSearch JavaScript客户端,完全兼容原有ES客户端的API,没有发行版校验限制。

内容的提问来源于stack exchange,提问作者David Faizulaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:27:03