我在script_score
中为function_score
编写了一个javascript脚本,但我在弹性搜索服务启动时遇到以下错误。我正在运行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] [警告] [剧本] [Soulfire]未能加载/编译脚本[****] org.mozilla.javascript.EvaluatorException:返回无效(Script1.js#14)
由于
我尝试了一个只有return 0.5;
的脚本。我仍然得到错误:
[2015-05-23 22:52:48,527] [信息] [剧本] [战士女人]编译脚本文件[/etc/elasticsearch/scripts/test.js] [2015-05-23 22:52:48,609] [警告] [剧本] [战士女人]未能加载/编译脚本[测试] org.mozilla.javascript.EvaluatorException:返回无效(Script1.js#1)
我从我的脚本中删除了return
关键字,例如:
return 0;
变为0;
这导致错误消退,但我继续得到意想不到的结果。我仍然想知道如何在js脚本中登录。
答案 0 :(得分:0)
从快速查看日志开始,ES试图说它无法加载或编译您的Javascript脚本。如果这是您的动态脚本或存储在主机上的脚本文件中的独立脚本,请添加更多信息。 如果您没有为ES安装javascript-lang插件,ES无法编译并运行您的Javascript。您必须查看以下链接
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
由于ES 1.5.0 +的安全问题,因为ES人们已经开始使用他们自己的安全模块,因此即使groovy现在也不再用于动态脚本的沙盒化。
如果我的回答给你任何帮助,请退回。
由于