【发布时间】:2015-06-01 15:35:11
【问题描述】:
我正在尝试创建一个脚本字段,该字段将计算两个时间戳之间的时间差,然后在该脚本字段上聚合一个 avg。
我第一次尝试:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"exists": {
"field": "time.new_time"
}
},
{
"exists": {
"field": "time.first_alert_time"
}
}
]
}
}
},
"script_fields": {
"timedifference": {
"script": "doc['time.new_time'].value - doc['time.first_alert_time'].value"
}
},
"aggs": {
"avg_timedifference": {
"avg": {
"field" : "timedifference"
}
}
}
}
这导致null 值低于聚合平均值avg_timedifference。
然后我尝试了:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"exists": {
"field": "time.new_time"
}
},
{
"exists": {
"field": "time.first_alert_time"
}
}
]
}
}
},
"script_fields": {
"timedifference": {
"script": "doc['time.new_time'].value - doc['time.first_alert_time'].value"
}
},
"aggs": {
"avg_timedifference": {
"avg": {
"script" : "doc['timedifference'].value"
}
}
}
}
这会生成一条错误消息:“在映射中没有找到 [timedifference] 的字段”
【问题讨论】:
标签: elasticsearch