我在ElasticSearch中有一个文件pageTransition,用于存储用户访问的页面。它有fromPageId,toPageId,创建(访问时间)等。 当用户从第183页到第184页时,单个记录如下所示
"clientId": 0,
"fromUrl": "http://ats.survale.com/Apply/AdditionalInfo.aspx",
"toUrl": "http://ats.survale.com/Apply/ConfirmInfo.aspx",
"fromPageId": "183",
"toPageId": "184",
"created": "2016-02-29T18:22:49.509Z"
现在我想要在过去7天内计算所有pageTransitions。我的意思是182-183:12,183-184:13等等。除此之外,我还想要用户在每个页面上花费的平均时间。是否可以使用聚合?
答案 0 :(得分:0)
要获得7天内的页面转换次数,您可以使用:
{
"size": 0,
"query": {
"bool": {
"filter": {
"range": {
"created": {
"gt": "now-7d"
}
}
}
}
},
"aggs": {
"transitions": {
"terms": {
"script": "[doc.fromPageId.value, doc.toPageId].join('-')"
}
}
}
}
为了实现这一点,您需要确保dynamic scripting is enabled