zoukankan      html  css  js  c++  java
  • Es学习第九课, 聚合查询和复合查询

    ES除了实现前几课的基本查询,也可以实现类似关系型数据库的聚合查询,如平均值sum、最小值min、最大值max等等

    我们就用上一课的数据作为参考来举例

    聚合查询

    sum聚合

    sum是一个求累加值的聚合,其作用与关系型数据库中相同。

    GET /lib4/items/_search
    {
      "size": 0, //表示查询多少条文档,聚合只需总和结果,输出文档可以设置为0条
      "aggs": {  //aggs表示是聚合查询
        "price_of_sum": {//自行取名作为结果集
          "sum": {
            "field":"price"
          }
        }
      }
    }

    min聚合

    min是一个求最小值的聚合,其作用与关系型数据库中相同

    GET /lib4/items/_search
    {
        "size": 0,
        "aggs": {
            "price_of_min": {
                "min": {
                    "field": "price"
                }
            }
        }
    }
     

    avg聚合

    avg是一个求平均值的聚合,其作用与关系型数据库中相同。

    GET /lib4/items/_search
    {
        "size": 0,
        "aggs": {
            "price_of_avg": {
                "avg": {
                    "field": "price"
                }
            }
        }
    }
     

    cardinality聚合

    cardinality是一个求基数的聚合,其作用与关系型数据库中相同。

    GET /lib4/items/_search
    {
        "size": 0,
        "aggs": {
            "price_of_cardi": {
                "cardinality": { //其实相当于该字段互不相同的值有多少类,输出的是种类数
                    "field": "price"
                }
            }
        }
    }
     

    terms聚合

    terms是一个分组聚合,其作用与关系型数据库中相同。

    GET /lib4/items/_search  
    {
        "size": 0,
        "aggs": {
            "price_of_by": {
                "terms": {
                    "field": "price"   //按价格来分组
                }
            }
        }
    }

    复合查询

    将多个基本查询组合成单一查询

    本质上就是把我们上一课讲的各个查询组合在一起形成一个单一查询

    使用bool查询
    接受以下参数:
    must:文档必须匹配设定条件才能被包含进来
    must_not:文档必须不匹配设定条件才能被包含进来
    should:如果满足语句中的任意语句,将增加_source,否则,无任何影响。主要用于修正每个文档的相关性得分
    filter:必须匹配,但以不评分、过滤模式来进行。这些语句对评分没有贡献,只是根据过滤标准来排除或包含文档

  • 相关阅读:
    联想Thinkpad L460安装Win7 64位
    2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图
    网络流24题 P2766 最长不下降子序列问题
    The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest B、H
    P4781 拉格朗日插值
    P4717 快速沃尔什变换FWT 模板题
    2019CCPC-江西省赛C题 HDU6569 GCD预处理+二分
    Gym 101917 E 简单计算几何,I 最大流
    51 Nod 1238 最小公倍数之和 V3 杜教筛
    51Nod 1237 最大公约数之和 V3 杜教筛
  • 原文地址:https://www.cnblogs.com/kakatadage/p/9989274.html
Copyright © 2011-2022 走看看