通过下面的汇总并使用ES5,我想基于给定的时区(从TZ数据库提供作为标识符)获取dayOfWeek和hourOfDay。
如何编辑"doc['created'].date.dayOfWeek'
以调整偏移量?
aggs: {
dayOfWeek: {
terms: {
script: {
inline: "doc['created'].date.dayOfWeek",
lang: 'painless',
},
},
aggs: {
hourOfDay: {
terms: {
script: {
inline: "doc['created'].date.hourOfDay",
lang: 'painless',
},
},
},
},
},
},
这样的事情应该起作用:
{
"size": 0,
"aggregations": {
"dayOfWeek": {
"terms": {
"script": {
"inline": "doc['created'].date.setZone(org.joda.time.DateTimeZone.forID(tz)); doc['created'].date.dayOfWeek",
"lang": "groovy",
"params": {
"tz": "Europe/London"
}
}
},
"aggs": {
"hourOfDay": {
"terms": {
"script": {
"inline": "doc['created'].date.setZone(org.joda.time.DateTimeZone.forID(tz)); doc['created'].date.hourOfDay",
"lang": "groovy",
"params": {
"tz": "Europe/London"
}
}
}
}
}
}
}
}
您可能需要通过添加script.engine.groovy.inline.aggs: on
到elasticsearch.yml文件来启用groovy的内联脚本。请参阅:此讨论。
注意。上面的内容无法正常工作,因为它已被锁定,并且不允许您编辑白名单。。
我尝试使用从UTC中添加/减去偏移量,但我不知道如何反制夏令时。我不确定我的方向是否正确。 如何在JavaScript中将时间从不同的时区转换为本地时间?
问题内容: 我正在尝试使用Elasticsearch的脚本语言来操纵日期。具体来说,我尝试增加4小时,即14,400秒。 这抛出 谢谢 问题答案: 解决方案是使用 但是,我实际上想将其用于重新索引,但格式略有不同。这是我在api中操纵时间的版本 这是可读版本的内联脚本 这是无痛支持的功能列表,很痛苦。
问题内容: 使用elasticsearch,我试图将计算出的字段添加到地理搜索中。我只想在搜索文档中附加一个额外的计算字段,但是当我通过“ script_fields”添加计算字段时,仅返回该字段。 我尝试添加通配符字段部分,但它不会影响结果。 如何使此查询返回添加了额外计算字段的? 问题答案: 不建议检索字段,而应使用源过滤。 所以,代替这个 用这个:
问题内容: 我为Jenkins作业编写了一个批处理脚本,该脚本会编译“ .net”代码,其中的步骤之一是在提取新的已编译代码之前备份当前目录。 我正在使用这些行来提取要插入备份文件名的日期和时间: 问题在于其输出看起来像这样: 这导致文件名是: 这是一个问题。 我想从时间变量中忽略“ AM”,怎么办? 问题答案: 因为您显然对Powershell的使用没有问题,所以将前两行替换为: 然后,在变量中
我有一张谷歌表,上面有日期时间数字,格式如下:42385.7441666700 我正在写一个脚本,我想以HH:MM的格式从这些数字中提取时间。上述数字应返回17:51。 我尝试了此代码,但不起作用: