【发布时间】:2020-09-18 20:36:18
【问题描述】:
示例文档:
{
"id":123,
"message_type":"RECEIVE",
"conversation_id":"1"
"date":"2020-01-01T12:00:00"
},
{
"id":456,
"message_type":"SEND",
"conversation_id":"1"
"date":"2020-01-01T13:00:00"
},
{
"id":789,
"message_type":"SEND",
"conversation_id":"1"
"date":"2020-01-01T14:00:00"
}
上下文:
-
对消息的响应不嵌套在消息下。他们也不共享父/子关系。
-
每条发送的消息都将被视为对最后收到的消息的回复。 (我知道这可能看起来很奇怪,但事实就是如此)
提问:计算每月消息的平均响应时间。
问题:中位数计算可能不是问题,但考虑到文档的扁平层次结构,我不确定如何计算响应时间。
我的尝试:
- 对于每条新发送的消息,用对话中最后收到的消息标记响应时间。
- 处理 #1 的旧对话/消息。
有更好的方法吗?可以使用管道聚合吗?
【问题讨论】:
标签: elasticsearch elasticsearch-aggregation