在Elasticsearch中加载javascript脚本失败

Failed to load javascript script in Elasticsearch

本文关键字:脚本 失败 javascript 加载 Elasticsearch      更新时间:2023-09-26

我在function_score中为script_score编写了一个javascript脚本,但是我在elasticsearch服务启动时得到以下错误。我正在运行Ubuntu 14.04, elasticsearch 1.4.5。很遗憾,我不能在这里发布代码。

什么构成一个有效的返回值?有没有办法调试分数脚本或打印到elasticsearch日志?

[2015-05-23 21:00:18 . 093][INFO][script][Soulfire]编译脚本文件[/etc/elasticsearch/scripts/****.js][2015-05-23 21:00:18 . 180][WARN][script][Soulfire]加载/编译脚本失败[****]org.mozilla.javascript. evaluatoreexception: invalid return (Script1.js#14)

感谢

更新:

我尝试了一个脚本只有return 0.5;。我仍然得到错误:

[2015-05-23 22:52:48,527][INFO][script][女战士]编译脚本文件[/etc/elasticsearch/scripts/test.js][2015-05-23 22:52:48,609][WARN][script][女战士]加载/编译脚本失败[test]org.mozilla.javascript. evaluatoreexception: invalid return (Script1.js#1)

更新2:

我从脚本中删除了return关键字,例如:return 0;变为0;

这导致错误消退,但我继续得到意想不到的结果。我仍然想知道我如何可以从js脚本内的日志。

从日志上快速查看,ES试图说它无法加载或编译您的Javascript脚本。另外,请添加更多的信息,如果这是您的动态脚本或独立脚本存储在主机上的脚本文件。如果你没有为ES安装Javascript -lang插件,ES就无法编译和运行你的Javascript。你必须看看下面的链接

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

由于ES 1.5.0 +的安全问题,甚至groovy现在也不再为动态脚本设置沙盒,因为ES开发人员已经开发了自己的安全模块。

如果我的回答对你有帮助,请回复。

谢谢