我收到了这样的请求:
{
"script":{
"inline":"ctx._source.music_tags=" + JSON.stringify(music_tags),
"lang":"painless"
},
"query":{
"constant_score":{
"filter":{
"term":{
"release_id": releaseId
}
}
}
}
}正如您所看到的,我正在尝试使用某个releaseId更新所有文档。一切都很正常,但是当我试图同时更新大量数据时,我得到了如下错误:
{
"error":{
"root_cause":[
{
"type":"circuit_breaking_exception",
"reason":"[script] Too many dynamic script compilations within one minute, max: [15/min]; please use on-disk, indexed, or scripts with parameters instead; this limit can be changed by the [script.max_compilations_per_minute] setting",
"bytes_wanted":0,
"bytes_limit":0
}
],
"type":"general_script_exception",
"reason":"Failed to compile inline script [ctx._source.music_tags=[\"25319\",\"25390\",\"25795\"]] using lang [painless]",
"caused_by":{
"type":"circuit_breaking_exception",
"reason":"[script] Too many dynamic script compilations within one minute, max: [15/min]; please use on-disk, indexed, or scripts with parameters instead; this limit can be changed by the [script.max_compilations_per_minute] setting",
"bytes_wanted":0,
"bytes_limit":0
}
},
"status":500
}我确实试图找到关于这个限制的任何信息,但我并不是很了解。
有人能解释一下为什么elasticSearch有这个限制吗?如果我改变这个限制会有什么影响?
我可以在没有脚本的情况下更新文档吗?
如果每次请求都使用一个参数(cf:here),还会出现limit错误吗?
谢谢,
提奥
发布于 2017-09-29 03:24:18
我得到了类似的错误,后来我发现表达式中有一个小的语法错误。在修复了语法错误后得到了解决。你检查过JSON是否有效吗?
发布于 2018-09-17 20:23:48
您可以配置"script.max_compilations_per_minute“设置来增加脚本编译的限制。
PUT /_cluster/settings
{
"transient": {
"script.max_compilations_per_minute": 40
}
}https://stackoverflow.com/questions/44851553
复制相似问题