Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BulkInsertWithRetry ¶
func BulkInsertWithRetry(index string, cfg BulkIndexerConfig, documents []map[string]any, maxRetries int, retryInterval time.Duration) error
BulkInsertWithRetry 带重试的批量插入
func GetIlmPolicy ¶
func GetIlmPolicy(client *elasticsearch.Client)
Types ¶
type BulkIndexerConfig ¶
type BulkIndexerConfig struct {
FlushBytes int `json:"flush_bytes" yaml:"flush_bytes" ini:"flush_bytes"` // 刷新字节阈值
FlushInterval time.Duration `json:"flush_interval" yaml:"flush_interval" ini:"flush_interval"` // 刷新时间间隔
NumWorkers int `json:"num_workers" yaml:"num_workers" ini:"num_workers"` // 工作协程数
Silent bool `json:"silent" yaml:"silent" ini:"silent"` // 是否静默模式
Client *elasticsearch.Client
Ctx context.Context
ErrLogr func(err error, msg ...any)
}
BulkIndexerConfig 批量索引器配置
func DefaultBulkIndexerConfig ¶
func DefaultBulkIndexerConfig(client *elasticsearch.Client, ctx context.Context) BulkIndexerConfig
DefaultBulkIndexerConfig 返回默认的批量索引器配置
type BulkInsertResult ¶
type BulkInsertResult struct {
SuccessCount int `json:"success_count"`
FailedCount int `json:"failed_count"`
Responses []esutil.BulkIndexerResponseItem `json:"responses"`
}
BulkInsertResult 批量插入结果
func BulkInsert ¶
func BulkInsert(index string, cfg BulkIndexerConfig, documents []map[string]any) (*BulkInsertResult, error)
BulkInsert 批量插入文档到Elasticsearch
type Config ¶
type Config struct {
DbIdentifier string `ini:"db_identifier" yaml:"db_identifier,omitempty" json:"db_identifier"`
Schema string `json:"schema" yaml:"schema" ini:"schema"`
Addresses []string `json:"addresses" yaml:"addresses" ini:"addresses"` // 一个包含 Elasticsearch 节点地址的列表,用于客户端连接到 Elasticsearch 集群。
Username string `json:"username" yaml:"username" ini:"username"` // HTTP 基本认证的用户名。
Password string `json:"password" yaml:"password" ini:"password"` // HTTP 基本认证的密码。
CloudID string `json:"cloud_id" yaml:"cloud_id" ini:"cloud_id"` // 当使用 Elastic 提供的服务时(例如通过 https://elastic.co/cloud),这是服务的终端地址。
APIKey string `json:"api_key" yaml:"api_key" ini:"api_key"` // 用于鉴权的 Base64 编码令牌。如果设置了该值,则会覆盖 Username/Password 和服务令牌进行鉴权
ServiceToken string `json:"service_token" yaml:"service_token" ini:"service_token"` // 另一种形式的鉴权令牌。如果设置,它会覆盖 Username 和 Password 进行鉴权。
CertificateFingerprint string `json:"certificate_fingerprint" yaml:"certificate_fingerprint" ini:"certificate_fingerprint"` // 在首次启动 Elasticsearch 时提供的 SHA256 散列指纹,用于验证服务器证书的真实性。
Header http.Header `json:"header" yaml:"header" ini:"header"` // 全局 HTTP 请求头,可以用来添加自定义头部信息到所有请求中。
CACert []byte `json:"ca_cert" yaml:"ca_cert" ini:"ca_cert"` // PEM 编码的证书颁发机构(CA)证书列表。当设置时,会创建一个新的空证书池,并将这些证书添加进去。仅在未指定传输或使用的是 http.Transport 时有效。
CAPath string `json:"ca_path" yaml:"ca_path" ini:"ca_path"`
RetryOnStatus []int `json:"retry_on_status" yaml:"retry_on_status" ini:"retry_on_status"` // 状态码列表,指示哪些状态码发生时应该重试请求。默认包括 502, 503, 504。
DisableRetry bool `json:"disable_retry" yaml:"disable_retry" ini:"disable_retry"` // 是否禁用自动重试功能,默认为 false。
MaxRetries int `json:"max_retries" yaml:"max_retries" ini:"max_retries"` // 自动重试的最大次数,默认为 3 次。
CompressRequestBody bool `json:"compress_request_body" yaml:"compress_request_body" ini:"compress_request_body"` // 是否压缩请求体,默认为 false。
CompressRequestBodyLevel int `json:"compress_request_body_level" yaml:"compress_request_body_level" ini:"compress_request_body_level"` // 如果启用请求体压缩,此选项设定压缩级别,默认为 gzip.DefaultCompression。
PoolCompressor bool `json:"pool_compressor" yaml:"pool_compressor" ini:"pool_compressor"` // 如果设置为 true,则使用基于 sync.Pool 的 gzip writer 来管理压缩器对象,默认为 false。
DiscoverNodesOnStart bool `json:"discover_nodes_on_start" yaml:"discover_nodes_on_start" ini:"discover_nodes_on_start"` // 初始化客户端时是否发现节点,默认为 false。
DiscoverNodesInterval time.Duration `json:"discover_nodes_interval" yaml:"discover_nodes_interval" ini:"discover_nodes_interval"` // 定期发现节点的时间间隔,默认为禁用。单位秒
EnableMetrics bool `json:"enable_metrics" yaml:"enable_metrics" ini:"enable_metrics"` // 启用指标收集,默认为 false。
EnableDebugLogger bool `json:"enable_debug_logger" yaml:"enable_debug_logger" ini:"enable_debug_logger"` // 启用调试日志记录,默认为 false。
EnableCompatibilityMode bool `json:"enable_compatibility_mode" yaml:"enable_compatibility_mode" ini:"enable_compatibility_mode"` // 启用发送兼容性头部,默认为 false。
DisableMetaHeader bool `json:"disable_meta_header" yaml:"disable_meta_header" ini:"disable_meta_header"` // 禁用额外的 "X-Elastic-Client-Meta" HTTP 头部,默认为 false。
*simpleHttpClient.Transport `json:"transport" yaml:"transport" ini:"transport"` // 传输配置,
}
Config elastic 配置
type IlmPolicy ¶
type IlmPolicy struct {
IlmPolicyName string `json:"ilm_policy_name" yaml:"ilm_policy_name" ini:"ilm_policy_name"` // ilm策略名称
MaxAge string `json:"max_age" yaml:"max_age" ini:"max_age"` // 最大存在时间
MaxPrimaryShardDocs int `json:"max_primary_shard_docs" yaml:"max_primary_shard_docs" ini:"max_primary_shard_docs"` // 最大文档数
MaxPrimaryShardSize string `json:"max_primary_shard_size" yaml:"max_primary_shard_size" ini:"max_primary_shard_size"` // 最大主分片大小
MaxDocs int `json:"max_docs" yaml:"max_docs" ini:"max_docs"` // 最大文档数
DeleteMinAge string `json:"delete_min_age" yaml:"delete_min_age" ini:"delete_min_age"` // 处于删除阶段的数据留存时间 0d
}
type Index ¶
type Index struct {
IndexName string `json:"index_name" yaml:"index_name" ini:"index_name"` // 索引名
ExtName string `json:"ext_name" yaml:"ext_name" ini:"ext_name"` // 扩展名
IlmPolicyName string `json:"ilm_policy_name" yaml:"ilm_policy_name" ini:"ilm_policy_name"` // ilm策略名
Mappings map[string]string `json:"mappings" yaml:"mappings" ini:"mappings"` // 索引映射
}
Click to show internal directories.
Click to hide internal directories.