Elasticsearch Node.js 客户端的安装
一、快速安装
安装最新版本:
npm install @elastic/elasticsearch
安装指定主版本(major):
npm install @elastic/elasticsearch@<major>
关于各主版本的支持情况,请查看 兼容性矩阵(Compatibility matrix)。
二、Node.js 支持(Node.js support)
注意
最低支持的 Node.js 版本为 v18。
客户端的版本遵循 Elastic Stack 的版本节奏:即主版本、次版本和补丁发布都有固定的计划,这往往不与 Node.js 的发布时间线一致。
为避免继续支持不安全或已停止维护(EOL)的 Node.js 版本,客户端会在次版本(minor)升级之间逐步移除对这些 EOL 版本的支持。通常,某个 Node.js 版本一旦进入 EOL,客户端仍会再多支持至少一个次版本。如果你正在使用即将不再受支持的 Node.js 版本,日志里会看到提前两个次版本开始的警告提示。
除非你始终使用受支持的 Node.js 版本,否则建议在 package.json
中用 ~
而不是 ^
来声明客户端依赖。这样依赖会锁定到次版本线而不是主版本线(例如用 ~7.10.0
而非 ^7.10.0
)。
2.1. Node.js EOL 与客户端停止支持时间
Node.js 版本 | Node.js EOL 日期 | 客户端停止支持(版本/时间) |
---|---|---|
8.x | 2019 年 12 月 | 7.11(2021 年初) |
10.x | 2021 年 4 月 | 7.12(2021 年中) |
12.x | 2022 年 4 月 | 8.2(2022 年初) |
14.x | 2023 年 4 月 | 8.8(2023 年初) |
16.x | 2023 年 9 月 | 8.11(2023 年末) |
18.x | 2025 年 4 月 | 9.2(2025 年末) |
三、兼容性矩阵(Compatibility matrix)
语言客户端具备前向兼容能力:也就是说,客户端可以与更高或相同次版本的 Elasticsearch 通信而不出错。但这不代表客户端会自动支持更高版本中新引入的功能;支持新功能需要发布新的客户端版本。
例如:8.12 版本的客户端不会自动支持 Elasticsearch 8.13 的新功能;要使用这些功能需要 8.13 客户端。
另外,Elasticsearch 语言客户端仅对默认发行版提供有限的向后兼容,不作额外保证。
Elasticsearch 版本 | 客户端版本 | Supported |
---|---|---|
9.x | 9.x | 9.x |
8.x | 8.x | 8.x |
7.x | 7.x | 7.17 |
6.x | 6.x | |
5.x | 5.x |
四、浏览器(Browser)
警告
官方不支持在浏览器环境直接使用该客户端。这样会将你的 Elasticsearch 实例暴露给所有人,带来严重的安全风险。
我们建议你编写一个轻量级代理服务(例如使用本客户端的 Node.js 服务端),由代理与 Elasticsearch 通信。你可以参考相应的代理示例。