在elasticsearch查询中使用groovy脚本*文件* - groovy脚本文件位置

时间:2015-06-18 06:45:07

标签: groovy elasticsearch

我试图引用我创建的groovy脚本文件,但无法找到(见下文)。我没有配置目录,而elasticsearch.yml在etc / elasticsearch中。我在usr / share / elasticsearch下添加了config / scripts /所以我现在有/ usr / share / elasticsearch / config / scripts /.

在那里,我放置了我的脚本 - source_types.groovy',我运行了chown elasticsearch:elasticsearch on以确保名为elasticsearch的用户拥有它。

我还在etc / elasticsearch中添加了config / scripts / source_types.groovy。

我正在尝试按如下方式调用脚本:

GET nr-01/_search
{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "file": "source_types.groovy",
          "lang": "groovy"
        }
      }
    }
  }
}

我正在

nested: SearchParseException[[nr-01][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n  \"query\": {\n    \"filtered\": {\n      \"filter\": {\n        \"script\": {\n          \"file\": \"source_types.groovy\",\n          \"lang\": \"groovy\"\n        }\n      }\n    }\n  }\n}\n]]]; nested: ElasticsearchIllegalArgumentException[Unable to find on disk script source_types.groovy]; }]",
   "status": 400

显然无法找到该文件。剧本在哪里?我是否正确地称呼它?

1 个答案:

答案 0 :(得分:2)

*.groovy个文件放在/etc/elasticsearch/scripts文件夹下(意味着省略config)。