【发布时间】:2018-05-23 10:07:26
【问题描述】:
我有一个弹性搜索集群,其中包含我网站的分析数据。用户访问页面时会发生页面查看事件。每个页面浏览事件都会有一个 session-id 字段,该字段在用户会话期间保持不变。
我想通过按会话 id 对事件进行分组并计算第一个事件和最后一个事件之间的持续时间差异来计算每个会话的会话持续时间
我有什么方法可以通过 Elastic Search Query 实现这一目标?
浏览量事件
[
{
"session-id":"234234-234234-324324-23432432",
"url": 'testpage1',
"timestamp":54323424222
},
{
"session-id":"234234-234234-324324-23432432",
"url": 'testpage2',
"timestamp":54323424223
},
{
"session-id":"234234-234234-324324-23432432",
"url": 'testpage3',
"timestamp":54323424224
}
]
会话持续时间为 (54323424224 - 54323424222)ms
编辑:
我能够通过查询min(timestamp) 和max(timestamp) 为每个会话ID 创建一个带有会话ID、最大时间戳、最小时间戳的数据表可视化。现在我需要的只是这些与 aggs 之间的不同。
【问题讨论】:
-
如果你想分组,你需要使用聚合。