配置项作用 #
script.max_size_in_bytes 配置项限制脚本源代码的最大大小(字节),包括内联脚本和存储脚本。
是否可选 #
是
默认值 #
65535 (64KB)
配置项类型 #
动态配置 - 可以在运行时修改
配置格式 #
# 默认配置
script.max_size_in_bytes: 65535
# 增加限制
script.max_size_in_bytes: 131070 # 128KB
# 减少限制
script.max_size_in_bytes: 32768 # 32KB
有效范围 #
- 最小值:不能低于现有存储脚本的大小
- 最大值:受系统内存限制
工作原理 #
┌─────────────────────────────────────────────────────────┐
│ 脚本大小验证 │
└─────────────────────────────────────────────────────────┘
脚本请求
│
▼
计算脚本大小
│
├── 内联脚本 → 测量源代码长度
└── 存储脚本 → 测量存储内容长度
│
▼
比较限制
│
├── 超过限制 → 拒绝请求
└── 未超过 → 允许执行
推荐设置 #
| 场景 | 推荐值 | 说明 |
|---|---|---|
| 默认配置 | 65535 | 适用于大多数场景 |
| 大脚本 | 131070 | 支持更复杂的脚本 |
| 安全优先 | 32768 | 更严格的限制 |
| 资源受限 | 16384 | 减少内存使用 |
使用示例 #
默认配置:
script.max_size_in_bytes: 65535
支持大脚本:
script.max_size_in_bytes: 131070 # 128KB
安全限制:
script.max_size_in_bytes: 32768 # 32KB
配置验证 #
# 查看当前配置
GET /_cluster/settings?filter_path=*.script.max_size_in_bytes
# 测试大脚本
POST _scripts/test_script
{
"script": {
"source": "long script here..."
}
}
常见问题 #
问题 1:脚本过大被拒绝
错误信息:
illegal_argument_exception: script size exceeds max allowed size
解决方案:
# 增加限制
script.max_size_in_bytes: 131070
问题 2:无法降低限制
原因:
- 存在更大的存储脚本
解决方案:
# 先删除大脚本或保持较高限制
注意事项 #
- 动态配置:可以在运行时修改
- 存储脚本:不能低于现有存储脚本的大小
- 内存考虑:较大的值会增加内存使用
- DoS 保护:此配置防止大脚本攻击
- 合理设置:根据实际需求设置
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
script.allowed_types | [] | 允许的脚本类型 |
script.cache.max_size | 100 | 脚本缓存大小 |
完整配置示例 #
# easysearch.yml
# 默认配置
script.max_size_in_bytes: 65535
# 安全配置
script.max_size_in_bytes: 32768
script.allowed_types:
- stored





