ElasticSearch无法在磁盘文件脚本上找到

时间:2016-10-06 09:00:19

标签: elasticsearch

我试图使用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];

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Elasticsearch泊坞窗图片使用不同的默认路径,查看相关的Dockerfile我可以看到它有/usr/share/elasticsearch/config/scripts的引用,尝试将groovy脚本放在那里,看看是否有效。