ITADN
elastic/elasticsearch-js
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Elasticsearch Node.js 客户端

js-standard-style Build Status Node CI codecov NPM downloads

Elasticsearch 的官方 Node.js 客户端。

在本地试用 Elasticsearch 和 Kibana

如果您想在本地试用 Elasticsearch 和 Kibana,可以运行以下命令:

curl -fsSL https://elastic.co/start-local | sh

这将在 http://localhost:9200 运行 Elasticsearch,并在 http://localhost:5601 运行 Kibana。

更多信息可参见此处

或者,您可以**手动下载最新版本的 Elasticsearch**,或 注册 Elastic Cloud 的免费试用

安装

请参阅入门文档中的安装部分

连接

请参阅入门文档中的连接部分

兼容性

Elasticsearch 客户端与当前维护的 JS 版本兼容。

语言客户端具有向前兼容性;这意味着客户端支持 与更高或相等的 Elasticsearch 次要版本进行通信,而不会 破坏兼容性。这并不意味着客户端自动支持 较新 Elasticsearch 版本的新功能;只有在发布新的 客户端版本后才可能实现。例如,8.12 客户端版本不会自动支持 Elasticsearch 8.13 版本的新功能,需要 8.13 客户端版本 才能实现。Elasticsearch 语言客户端仅与默认发行版向后 兼容,且不提供任何保证。

Elasticsearch 版本Elasticsearch-JS 分支
mainmain
9.x9.x
8.x8.x
7.x7.x

用法

Node.js 支持

注意:Node.js 的最低支持版本为 v20

客户端的版本遵循 Elastic Stack 的版本策略,这意味着 主要版本、次要版本和补丁版本的发布遵循一个精确的时间表, 该时间表通常与 Node.js 发布 时间不一致。

为避免支持不安全且不受支持的 Node.js 版本, 客户端将在次要版本之间停止支持 EOL 版本的 Node.js。 通常,一旦某个 Node.js 版本进入 EOL,客户端将继续 支持该版本至少再一个次要版本。如果您使用的是即将 不再受支持的 Node.js 版本的客户端,您将在日志中看到警告 (客户端将提前两个次要版本开始记录该警告)。

除非您始终使用受支持的 Node.js 版本, 我们建议在您的 package.json 中使用 ~ 而不是 ^ 来定义客户端依赖项。这样,您将对 次要版本而不是主要版本锁定 依赖项。(例如,使用 ~7.10.0 而不是 ^7.10.0)。

Node.js 版本Node.js EOL 日期支持结束
8.xDecember 20197.11(2021 年初)
10.xApril 20217.12(2021 年中)
12.xApril 20228.2(2022 年初)
14.xApril 20238.8(2023 年初)
16.xSeptember 20238.11(2023 年末)
18.xApril 20259.1(2025 年中)

浏览器

[!WARNING] 不支持浏览器环境。它会将您的 Elasticsearch 实例暴露给所有人,这可能导致安全问题。 我们建议您编写一个轻量级代理来使用此客户端,您可以在此处查看代理示例 here

文档

安装多个版本

如果您正在使用多个版本的 Elasticsearch,则需要使用多个版本的客户端。过去,安装同一软件包的多个版本是不可能的,但借助 npm v6.9,您可以通过别名来实现。

安装客户端不同版本时必须运行的命令是:

npm install <alias>@npm:@elastic/elasticsearch@<version>

例如,如果你需要安装 7.x6.x,你将运行:

npm install es6@npm:@elastic/elasticsearch@6
npm install es7@npm:@elastic/elasticsearch@7

而你的 package.json 将如下所示:

"dependencies": {
  "es6": "npm:@elastic/elasticsearch@^6.7.0",
  "es7": "npm:@elastic/elasticsearch@^7.0.0"
}

您需要使用已定义的别名来引用代码中的包。

const { Client: Client6 } = require('es6')
const { Client: Client7 } = require('es7')

const client6 = new Client6({
  cloud: { id: '<cloud-id>' },
  auth: { apiKey: 'base64EncodedKey' }
})
const client7 = new Client7({
  cloud: { id: '<cloud-id>' },
  auth: { apiKey: 'base64EncodedKey' }
})

client6.info().then(console.log, console.log)
client7.info().then(console.log, console.log)

最后,如果你想安装下一个版本的 Elasticsearch 客户端 (即位于 Elasticsearch 主分支中的版本),你可以使用以下 命令:

npm install esmain@github:elastic/elasticsearch-js

许可证

本软件依据 Apache License 2.0 授权。