elasticsearch index setting - yaokun123/php-wiki GitHub Wiki

  • 1、修改集群只读
PUT _settings
{
  "index":{
    "blocks":{
      "read_only_allow_delete":"false"
    }
  }
}
  • 2、修改限流阈值

默认值是 20 MB/s,对机械磁盘应该是个不错的设置。如果你用的是 SSD,可以考虑提高到 100–200 MB/s

PUT /_cluster/settings
{
    "persistent" : {//这些变更会永久存在直到被显式修改。即使全集群重启它们也会存活下来并覆盖掉静态配置文件里的选项。
        "indices.store.throttle.max_bytes_per_sec" : "100mb"
    }
}

如果你在做批量导入,完全不在意搜索,你可以彻底关掉合并限流。这样让你的索引速度跑到你磁盘允许的极限:

PUT /_cluster/settings
{
    "transient" : {//临时这些变更在集群重启之前一直会生效。一旦整个集群重启,这些配置就被清除。
        "indices.store.throttle.type" : "none" 
    }
}
设置限流类型为 none 彻底关闭合并限流。等你完成了导入,记得改回 merge 重新打开限流。
  • 3、数据在节点间传输最大带宽
PUT /_cluster/settings
{
    "transient" : {
        "indices.recovery.max_bytes_per_sec" : "100mb"
    }
}
  • 4、修改某个索引的最大搜索返回条数
PUT company_new_index/_settings
{
  "index":{
    "max_result_window":30000
  }
}
  • 5、修改最大桶

这是6.x版本才有的特性,目的:限制大批量聚合操作,规避性能风险。

PUT _cluster/settings
{
  "persistent": {
    "search.max_buckets": 30000
  }
}
  • 6、获取某个索引的设置信息
GET company_new_index/_settings