Elasticsearch 8.0 索引设置变更详解
elasticsearch 项目地址: https://gitcode.com/gh_mirrors/elas/elasticsearch
系统索引访问方式变更
在Elasticsearch 8.0中,直接访问系统索引的方式已被标记为废弃。系统索引是Elasticsearch内部用于存储系统级数据的特殊索引,如监控数据、安全配置等。
技术细节:
- 直接访问系统索引会在API响应头中产生警告信息
- 未来版本可能会完全禁止直接访问
- 建议通过Kibana或相关功能的专用API来管理系统索引数据
解决方案: 如需访问系统索引,必须创建具有特定权限的安全角色:
- 创建针对特定系统索引的索引权限
- 设置
allow_restricted_indices
权限为true
合并策略设置变更
index.merge.policy.max_merge_at_once_explicit
设置已被废弃且不再生效。
背景知识: 该设置原本用于控制强制合并或删除文档时一次最多合并的段数量。在8.0版本中,这个限制已被移除,合并操作不再受此设置约束。
操作建议:
- 新创建索引时不要包含此设置
- 从索引模板和组件模板中移除该设置
- 对于已有索引,可通过以下API清除设置:
PUT my-index-000001/_settings
{
"index.merge.policy.max_merge_at_once_explicit": null
}
邻接矩阵聚合设置变更
index.max_adjacency_matrix_filters
设置已被完全移除。
技术影响:
- 邻接矩阵聚合的过滤器数量现在由
indices.query.bool.max_clause_count
控制 - 包含该设置的请求将返回错误
- 从7.x升级的集群中,该设置会被归档处理
注意事项:
- 必须从所有索引模板中移除该设置
- 包含该设置的模板会导致相关操作失败,包括ILM自动滚动操作
术语字典优化设置移除
index.force_memory_term_dictionary
设置已被移除。
技术背景: 该设置最初在7.0版本引入,作为临时措施允许用户选择不使用将术语字典保留在磁盘上的优化。8.0版本后,此优化成为强制要求。
影响:
- 包含该设置的请求将返回错误
- 需要从所有配置中移除该设置
软删除设置变更
index.soft_deletes.enabled
设置已被移除。
版本演进:
- 7.6版本开始废弃创建禁用软删除的索引
- 8.0版本完全移除了禁用软删除的能力
影响:
- 尝试将
index.soft_deletes.enabled
设为false的请求将返回错误 - 所有索引现在都必须启用软删除功能
事务日志保留设置移除
index.translog.retention.age
和index.translog.retention.size
设置已被移除。
历史背景:
- 7.4版本开始这些设置实际上被忽略
- 7.7版本标记为废弃
- 8.0版本完全移除
替代方案: 软删除功能(soft deletes)现在完全接管了事务日志的历史保留功能。
影响:
- 包含这些设置的请求将返回错误
- 需要从所有配置中移除这些设置
总结
Elasticsearch 8.0对索引设置进行了多项重要变更,主要涉及:
- 系统索引访问权限管理更加严格
- 合并策略优化,移除不必要的限制
- 邻接矩阵聚合配置方式简化
- 强制实施术语字典优化
- 全面启用软删除功能
- 事务日志保留机制统一到软删除方案
这些变更反映了Elasticsearch向更高效、更安全的存储引擎发展的趋势。建议用户在升级前仔细检查现有索引配置,确保符合8.0版本的要求。
elasticsearch 项目地址: https://gitcode.com/gh_mirrors/elas/elasticsearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考