首页/数据/NoSQL 速查/查看索引用到的全部设置
Elasticsearch89 条

查看索引用到的全部设置

GET /<index>/_settings 只看显式配置,加 include_defaults=true 能列出所有生效默认值;flat_settings=true 把嵌套设置压平成点号键,便于 diff 与脚本比对。

NoSQL 速查数据更新于 2026-10-13

看生效值而不是写法

GET /<index>/_settings 默认只返回显式配置过的设置,加上 include_defaults=true 才会把继承自模板与系统默认的生效值一并列出。排查行为差异(副本数、刷新间隔、分析器、ILM 绑定)时要以这里返回的生效值为准,而不是索引模板或部署脚本里的写法。

flat_settings 有什么用

默认输出是嵌套结构,副本数藏在 settings.index.number_of_replicas 层级下;flat_settings=true 会把嵌套键压成点号形式,既方便与模板文件做文本比对,也方便脚本直接取值。再配合 filter_path 只取关心的几个键,就能在设置项很多的大索引上避免拉回整段响应。

基本信息

接口GET /<index>/_settings
看默认值include_defaults=true
压平输出flat_settings=true
精确取字段filter_path=**.index.number_of_replicas
批量核对GET /logs-*/_settings?flat_settings=true

示例

示例
# 只看显式配置过的设置
GET /my-index/_settings?flat_settings=true

# 连同默认值一起看,确认最终生效值
GET /my-index/_settings?include_defaults=true&flat_settings=true

# 只取关心的键:副本数与刷新间隔
GET /my-index/_settings?include_defaults=true&filter_path=**.index.number_of_replicas,**.index.refresh_interval

# 批量核对一批索引
GET /logs-*/_settings?flat_settings=true

# 修改后立即读取核对是否生效
PUT /my-index/_settings
{ "index.number_of_replicas": 2 }

典型使用场景

  • 排查写入慢:确认 refresh_interval 是否被改得很短
  • 规范核对:副本数是否与容量与可用性要求一致
  • 分析器排错:分词结果异常时先看索引上实际生效的分析器配置
  • 确认 ILM 绑定:索引是否挂到了预期的生命周期策略上
  • 变更前后对比:改完设置立刻读取,避免被模板在下次滚动时覆盖

参数组合用法

参数作用使用场景
(无参数)只返回显式配置过的设置快速看出人工改过什么
include_defaults=true附带模板与系统默认值需要确认最终生效值时
flat_settings=true把嵌套设置压平成点号键做 diff 或脚本取值
filter_path=...只返回匹配的键索引多、设置多时必用
设置值可能来自索引模板、生命周期策略或人工修改,看到异常值先回溯来源再改,否则很可能在下次滚动新建索引时被模板重新覆盖。
include_defaults=true 在索引或设置很多的集群上响应很大,务必配合 filter_path 或限定索引通配符,避免采集任务把协调节点压住。

易错点

  • 只看默认输出就下结论:它不含模板与系统默认值,会漏掉真正生效的配置
  • 手工改了设置却不核对生效值,模板在新建索引时会把改动覆盖回去
  • include_defaults 在大集群上响应很大,不配合 filter_path 容易拖慢采集
  • 把 _settings 当成别名与映射的来源:这两类信息要分别查 _alias 与 _mapping

数据来源与参考

  • Elasticsearch Guide: Get index settings API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌