Skip to content

ES更新数据报错: Too many dynamic script compilations within, max: [75/5m]; please use indexed, or scripts with parameters instead; #28

Description

@jamesBan

转自:http://leojen.cn/index.php/archives/225/
在更新数据的时候报错:

Too many dynamic script compilations within, max: [75/5m]; please use indexed, or scripts with parameters instead;
更新脚本是这样的:

"script" : {
        "source": "ctx._source.age=20",
        "lang": "painless"
    }

1.可以通过:

PUT _cluster/settings
{
    "transient" : {
        "script.max_compilations_rate" : "100/1m"
    }
}

也就是提高阀值,系统默认是100/1m 也就是一分钟编译100。
但是这种方法显然治标不治本,从报错里已经给出答案了,采用params脚本,也就是把要更新的值放到params里:

"script" : {
        "source": "ctx._source.age=params.age",
        "lang": "painless",
        "params" : {
            "age": 20
        }
    }

注意2种脚本的写法。这样才能从根本上解决。

Metadata

Metadata

Assignees

No one assigned

    Labels

    search搜索引擎

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions