我试图使用Java API执行一个groovy脚本:
AggregationBuilders
.terms(this.getName())
.field(this.getName())
.script(
new Script(
"year",
ScriptType.FILE,
"groovy",
ImmutableMap.of("name", this.getName())
)
);
我正在使用自定义的docker镜像运行elasticsearch实例。这是DockerFile:
FROM elasticsearch:2.4
MAINTAINER me
COPY ./year.groovy /etc/elasticsearch/scripts
正如您所见,我在COPY
中提供了我的脚本文件/etc/elaticsearch/scripts
。
我已经查看了/etc/elasticsearch/scripts
:
#docker exec -it es ls /etc/elasticsearch/scripts -l
-rw-r--r--. 1 root root 70 Oct 6 07:24 year.groovy
然而,当达到java代码时,它会告诉我:
Unable to find on disk file script [year] using lang [groovy];
有什么想法吗?
答案 0 :(得分:1)
Elasticsearch泊坞窗图片使用不同的默认路径,查看相关的Dockerfile我可以看到它有/usr/share/elasticsearch/config/scripts
的引用,尝试将groovy脚本放在那里,看看是否有效。