node 或 nodes
|
要使用的 Elasticsearch 端点。 它可以是单个字符串或字符串数组
node: 'https://127.0.0.1:9200'
或者它可以是表示节点的对象(或对象数组)
node: {
url: new URL('https://127.0.0.1:9200'),
tls: 'tls options',
agent: 'http agent options',
id: 'custom node id',
headers: { 'custom': 'headers' }
roles: {
master: true,
data: true,
ingest: true,
ml: false
}
}
|
auth
|
您的身份验证数据。您可以使用基本身份验证和 ApiKey。 有关更多详细信息,请参阅 身份验证。
默认值: null
基本身份验证
auth: {
username: 'elastic',
password: 'changeme'
}
ApiKey 身份验证
auth: {
apiKey: 'base64EncodedKey'
}
承载者身份验证,适用于 服务帐户令牌。请注意,它不处理自动令牌刷新
auth: {
bearer: 'token'
}
|
maxRetries
|
number - 每个请求的最大重试次数。
默认值: 3
|
requestTimeout
|
number - 每个请求的最大请求超时时间(毫秒)。
默认值: 30000
|
pingTimeout
|
number - 每个请求的最大 ping 请求超时时间(毫秒)。
默认值: 3000
|
sniffInterval
|
number, boolean - 每 n 毫秒执行一次嗅探操作。嗅探可能不是您的最佳解决方案,请查看 此处 以了解更多信息。
默认值: false
|
sniffOnStart
|
boolean - 客户端启动后执行一次嗅探。嗅探可能不是您的最佳解决方案,请查看 此处 以了解更多信息。
默认值: false
|
sniffEndpoint
|
string - 嗅探期间要 ping 的端点。
默认值: '_nodes/_all/http'
|
sniffOnConnectionFault
|
boolean - 在连接故障时执行嗅探。嗅探可能不是您的最佳解决方案,请查看 此处 以了解更多信息。
默认值: false
|
resurrectStrategy
|
string - 配置节点复活策略。
选项: 'ping' , 'optimistic' , 'none'
默认值: 'ping'
|
suggestCompression
|
boolean - 向每个请求添加 accept-encoding 标头。
默认值: false
|
compression
|
string, boolean - 启用 gzip 请求主体压缩。
选项: 'gzip' , false
默认值: false
|
tls
|
http.SecureContextOptions - tls 配置。
默认值: null
|
proxy
|
string, URL - 如果您使用的是 http(s) 代理,则可以将其 url 放置此处。客户端将自动处理与它的连接。
默认值: null
const client = new Client({
node: 'https://127.0.0.1:9200',
proxy: 'https://127.0.0.1:8080'
})
const client = new Client({
node: 'https://127.0.0.1:9200',
proxy: 'http://user:pwd@localhost:8080'
})
|
agent
|
http.AgentOptions, function - http 代理 选项,或返回实际 http 代理实例的函数。如果您想完全禁用 http 代理(并禁用 keep-alive 功能),请将代理设置为 false 。
默认值: null
const client = new Client({
node: 'https://127.0.0.1:9200',
agent: { agent: 'options' }
})
const client = new Client({
node: 'https://127.0.0.1:9200',
// the function takes as parameter the option
// object passed to the Connection constructor
agent: (opts) => new CustomAgent()
})
const client = new Client({
node: 'https://127.0.0.1:9200',
// Disable agent and keep-alive
agent: false
})
|
nodeFilter
|
function - 过滤掉不应用于请求的节点。
默认
function defaultNodeFilter (node) {
// avoid master only nodes
if (node.roles.master === true &&
node.roles.data === false &&
node.roles.ingest === false) {
return false
}
return true
}
|
nodeSelector
|
function - 自定义选择策略。
选项: 'round-robin' , 'random' , 自定义函数
默认值: 'round-robin'
自定义函数示例
function nodeSelector (connections) {
const index = calculateIndex()
return connections[index]
}
|
generateRequestId
|
function - 用于为每个请求生成请求 ID 的函数,它接受两个参数,请求参数和选项。 默认情况下,它为每个请求生成一个递增的整数。
自定义函数示例
function generateRequestId (params, options) {
// your id generation logic
// must be syncronous
return 'id'
}
|
name
|
string, symbol - 用于在事件中标识客户端实例的名称。
默认值: elasticsearch-js
|
opaqueIdPrefix
|
string - 用于为任何 X-Opaque-Id 标头添加前缀的字符串。 有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/elasticsearch/client/javascript-api/current/observability.html#x-opaque-id_support[X-Opaque-Id 支持]。_默认值: null
|
headers
|
object - 一组在每个请求中发送的自定义标头。
默认值: {}
|
context
|
object - 一个自定义对象,您可以将其用于事件的可观察性。它将与 API 级别的上下文选项合并。
默认值: null
|
enableMetaHeader
|
boolean - 如果为 true,则添加一个名为 'x-elastic-client-meta' 的标头,其中包含一些最小的遥测数据,例如客户端和平台版本。
默认值: true
|
cloud
|
object - 连接到 Elastic Cloud 的自定义配置。有关更多详细信息,请参阅 身份验证。
默认值: null
云配置示例
const client = new Client({
cloud: {
id: '<cloud-id>'
},
auth: {
username: 'elastic',
password: 'changeme'
}
})
|
disablePrototypePoisoningProtection
|
boolean , 'proto' , 'constructor' - 默认情况下,客户端会保护您免受原型污染攻击。阅读 这篇文章 以了解更多信息。如果需要,您可以完全禁用原型污染保护或禁用两个检查之一。阅读 secure-json-parse 文档 以了解更多信息。
默认值: false
|
caFingerprint
|
string - 如果已配置,请验证已签署服务器证书的 CA 证书的指纹是否与提供的指纹匹配。仅接受 SHA256 摘要指纹。
默认值: null
|
maxResponseSize
|
number - 如果已配置,它将验证未压缩的响应大小是否低于配置的数字,如果高于,它将中止请求。它不能高于 buffer.constants.MAX_STRING_LENGTH
默认值: null
|
maxCompressedResponseSize
|
number - 如果已配置,它将验证压缩后的响应大小是否低于配置的数字,如果高于,它将中止请求。它不能高于 buffer.constants.MAX_LENGTH
默认值: null
|