在Elasticsearch中加载javascript脚本失败
Failed to load javascript script in Elasticsearch
我在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;
。我仍然得到错误:
更新2:[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)
我从脚本中删除了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开发人员已经开发了自己的安全模块。
如果我的回答对你有帮助,请回复。
谢谢
- 网页上失败的javascript会导致所有其他脚本失败
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- 我用脚本创建了一个按钮.我可以通过点击按钮调用其他函数吗?我这样做,但失败了
- Angular 2 快速入门<脚本 /> 失败
- 我正在用java脚本编写一个hangman程序,如果玩家失败了,我需要帮助来显示这个词
- 一旦第三方脚本加载失败,立即运行一段JavaScript
- 通过 .load() 加载的脚本失败
- JavaScript 中的登录脚本失败
- 表单选择 GT 9 时脚本失败
- 内容替换 JS 脚本失败
- 作为预生成事件执行PowerShell脚本失败
- 导致脚本失败的方法
- 由于空白字符,Java脚本失败
- 从母版页访问脚本失败,但从内容页都是正确的
- Babel-node脚本失败'意外标记'syntaxError on '线
- 在IE7, 8和9中填充列表时脚本失败
- Eslint脚本失败,流星运行NPM Eslint
- 远程脚本失败处理-JavaScript
- 在Elasticsearch中加载javascript脚本失败