我在ElasticSearch中执行包含以下代码的查询:
"aggs": {
"day_of_week": {
"terms": {
"script": "def myDate = new DateTime(doc['timestamp'].date); myDate.withZone(DateTimeZone.forID(timeZoneInfo)).getDayOfWeek()"
"size": 0
}
}
}
问题是,出于安全原因,默认情况下现在禁用动态脚本,因此这将失败,并显示错误" ScriptException [[groovy]的动态脚本已禁用]"。有关动态脚本的详细信息,请参阅此页面:https://www.elastic.co/blog/running-groovy-scripts-without-dynamic-scripting
我知道建议的解决方法是使用脚本文件。不幸的是,这似乎不受聚合术语的支持(它只对过滤器有效吗?)。
为了解决这个问题,我们非常感谢任何帮助,因为出于安全考虑,我无法真正保留动态脚本。
答案 0 :(得分:1)
所以看起来这是可能的 - 我只是使用了不正确的格式。在我的例子中,我创建了一个名为" date_time_zoned_hour_of_day"的groovy脚本文件。并将其添加到elasticsearch / config / scripts中。
代码如下:
<meta property="og:image" content="http://www.lux-boutique.co.uk/fblogo.png"/>