ES聚合指标
value_count: 计数
cardinality: 去重计数
avg: 平均值
sum: 求和
max: 最大值
min: 最小值
percentiles: 百分比
top_hits: 简单来说就是聚合分组后从每一个组取部分数据作为结果返回
1, 基础数据 用户登陆信息 包含登陆时间、用户ID等信息
查询某个时间段内uv DSL如下:
{
"query": {
"bool": {
"filter": [
{
"range": {
"time": {
"gte": "2019-09-02 00:00:00",
"lt": "2019-09-09 00:00:00",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
}
]
}
},
"aggs": {
"userCount": {
"cardinality": {
"field": "userId.keyword"
}
}
}
}
查询某段时间内每天的uv
{
"query": {
"bool": {
"filter": [
{
"range": {
"time": {
"gte": "2019-09-02 00:00:00",
"lt": "2019-09-09 00:00:00",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
}
]
}
},
"aggs": {
"groupBy": {
"date_histogram": {
"field": "time",
"interval": "day" //按天 比如按照7天: 7d, 按照月: month等
},
"aggs": {
"userCount": {
"cardinality": {
"field": "userId.keyword"
}
}
}
}
}
}
2, 基础数据 用户访问商品页信息 包含访问时间、访问商品ID、用户ID等信息
统计一个时间范围内 商品访问uv/pv排行
{
"query": {
"bool": {
"filter": [
{
"range": {
"time": {
"gte": "2019-07-01 00:00:00",
"lt": "2019-09-10 00:00:00",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
},
{
"terms": {
"spuId": [
"224441" //特定spu
]
}
}
],
"must_not": {
"match": {
"userId.keyword": ""
}
}
}
},
"aggs": {
"groupBy": {
"terms": {
"field": "spuId.keyword",
"order": {
"uv": "desc" //按uv排序,此处也可以修改为按pv排序
}
},
"aggs": {
"uv": {
"cardinality": { //uv userId去重后计数
"field": "userId.keyword"
}
},
"pv": {
"value_count": { //pv userId计数
"field": "userId.keyword"
}
}
}
}
}
}