当前位置: 首页 > news >正文

【Elasticsearch】settings

通过settings或者yml文件写入的配置是不是最终都会写到settings对象中呢?

是的,最终都会汇总到 `Settings` 对象里,但来源不同、优先级不同、作用范围也不同。可以用一句话总结:

> “yml 文件只是初始来源之一,运行时所有配置最终都会归一到 Settings 对象,但 Settings 对象是分层的,不同层之间可以覆盖。”

---

🔍 1. 配置来源与层次

来源 写入目标 作用范围 备注 

`elasticsearch.yml` 节点级的 `Settings` 整个节点 启动时只读一次 

命令行参数 `-E` 同上 同上 优先级高于 yml 

索引创建时的 settings 该索引专属的 `Settings` 仅该索引 通过 `PUT /index/_settings` 可修改 

集群级动态设置 集群状态的 `Settings` 整个集群 通过 `PUT _cluster/settings` 写入 

---

🔍 2. 最终归一:Settings 对象

- 节点启动时,`Environment` 会把 `elasticsearch.yml`、CLI 参数、jvm.options 等解析成一个全局的 `Settings` 实例。

- 索引创建时,会再创建一个 索引级别的 `Settings`,它会把全局配置作为 fallback,然后再把索引自己的 settings 覆盖进去。

- 运行时,通过 `ClusterService.state().metadata().index("idx").getSettings()` 拿到的是索引级 Settings;通过 `Node.NODE_SETTINGS` 拿到的是节点级 Settings。

---

✅ 举个例子

假设你在 `elasticsearch.yml` 里写了:

```yaml

index.number_of_shards: 3

```

- 启动后,节点级 `Settings` 里会有 `index.number_of_shards: 3`。

- 当你创建索引 `PUT /my_index` 时,如果没有显式指定 `number_of_shards`,就会用到这个全局默认值。

- 如果你在创建索引时写了:

```json

  PUT /my_index

  {

    "settings": {

      "number_of_shards": 5

    }

  }

  ```

  那么最终该索引的 `Settings` 对象里就是 `5`,覆盖了全局的 `3`。

---

✅ 总结一句话

> 所有配置最终都会落到某个 `Settings` 对象里,但不同层级之间可以相互覆盖:索引级 > 集群动态 > 节点级(yml)。

“fallback” 就是兜底值、备胎值的意思。

 

在 Elasticsearch 的 `Settings` 体系里:

 

> 如果当前层(索引、集群、节点)没有显式配置某个键,就会自动去上一层找这个键的值拿来用,这个“上一层”的值就是 fallback。

 

---

 

✅ 举个例子

 

1. 节点级 yml 配置了:

 

```yaml

index.number_of_replicas: 2

```

 

2. 你创建索引时 没写 `number_of_replicas`:

 

```json

PUT /my_index

{

  "settings": {

    "number_of_shards": 3

  }

}

```

 

- 此时 `my_index` 的 `number_of_replicas` 会自动取节点级的 `2`。

- 这个 `2` 就是 fallback 值。

 

---

 

✅ 一句话总结

 

> fallback 就是“如果我没配,就用上级默认值”。

http://www.dtcms.com/a/291083.html

相关文章:

  • 解密分账系统:企业资金管理的智能中枢
  • Linux的相关指令
  • 京东商品评论如何获取?API接口实战指南
  • Kali MSF渗透Windows 11电脑
  • Linux_gdb调试器--进程概念
  • Linux初识网络
  • MySQL 核心知识点梳理(3)
  • buntu 22.04 上离线安装Docker 25.0.5(二)
  • 如何升级到macOS Tahoe:全面指南与实用步骤
  • LeetCode 每日一题 2025/7/14-2025/7/20
  • Mysql(存储过程)
  • 图像编辑开源数据项目
  • 了解 ReAct 框架:语言模型中推理与行动的协同
  • 疯狂星期四文案网第14天运营日记
  • DBSCAN聚类算法
  • OpenAI API(1)补全Responses(Chat Completions)API和记忆Assistants API对比分析
  • 牛客周赛 Round 101(题解的token计算, 76修地铁 ,76选数,76构造,qcjj寄快递,幂中幂plus)
  • 使用pymongo进行MongoDB的回收
  • JAVA高级第七章输入和输出处理(二)
  • 前缀和题目:元素和小于等于阈值的正方形的最大边长
  • PostgreSQL高可用架构Repmgr部署流程
  • 按需搭建web网站
  • 【2025】Vscode Python venv虚拟环境显示“激活终端”成功但是在终端中“并没有激活成功”,pip安装还是会安装到全局环境中的解决方法;
  • CataPro本地安装教程--No GPU--cpu only模式--网络资料整理
  • Android Navigation 组件:简化应用导航的利器
  • [硬件电路-67]:模拟器件 - 高输入阻抗、低输出阻抗本质:最小化能量的汲取,最大化能量传递
  • Dynamics 365 Contact Center是什么
  • NX636NX644美光固态闪存NX663NX665
  • MySQL笔记4
  • 行业实例-国产中望3D曲面建模如何实现电脑精准+协同设计