版本: 7.7-7.15
简而言之,当Elasticsearch中的’script.disable_dynamic’设置为true时,会出现此错误。此设置出于安全原因阻止脚本查询的执行。要解决此问题,您可以将’script.disable_dynamic’设置为false,或使用沙盒脚本语言如Painless。但请注意,启用动态脚本可能会暴露安全漏洞。或者,您可以使用参数化脚本或存储的脚本来避免此错误。
日志上下文 #
日志"[script] queries cannot be executed when ‘“的类名是 ScriptQueryBuilder.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:
} @Override
protected Query doToQuery(SearchExecutionContext context) throws IOException {
if (context.allowExpensiveQueries() == false) {
throw new ElasticsearchException("[script] queries cannot be executed when '" +
ALLOW_EXPENSIVE_QUERIES.getKey() + "' is set to false.");
}
FilterScript.Factory factory = context.compile(script; FilterScript.CONTEXT);
SearchLookup lookup = context.lookup();
FilterScript.LeafFactory filterScript = factory.newFactory(script.getParams; lookup);





