基本配置编辑

此页面展示了客户端提供的基本配置选项。

const { Client } = require('@elastic/elasticsearch')

const client = new Client({
  cloud: { id: '<cloud-id>' },
  auth: { apiKey: 'base64EncodedKey' },
  maxRetries: 5,
  requestTimeout: 60000,
  sniffOnStart: true
})

nodenodes

要使用的 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