美文网首页
ES聚合&去重查询

ES聚合&去重查询

作者: 老季的私密空间 | 来源:发表于2019-10-11 14:45 被阅读0次

    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"
              }
            }
          }
        }
      }
    }
    

    相关文章

      网友评论

          本文标题:ES聚合&去重查询

          本文链接:https://www.haomeiwen.com/subject/maaiyctx.html