zoukankan      html  css  js  c++  java
  • ElasticSearch聚合aggs入门

    Elasticsearch是一款功能强大的开源软件,不仅可以检索排序,还可以对文档进行更复杂的操作--聚合。

    1、单值聚合

      Sum求和,dsl参考如下:

    {
      "size": 0,
      "aggs": {
        "return_balance": {
          "sum": {
            "field": "balance"
          }
        }
      }
    }

    返回balance之和,其中size=0 表示不需要返回参与查询的文档。

    Min求最小值

    {
      "size": 0,
      "aggs": {
        "return_min_balance": {
          "min": {
            "field": "balance"
          }
        }
      }
    }

    返回结果

    Max求最大值

    {
      "size": 0,
      "aggs": {
        "return_max_balance": {
          "max": {
            "field": "balance"
          }
        }
      }
    }

    返回结果:

    AVG求平均值

    {
      "size": 0,
      "aggs": {
        "return_avg_balance": {
          "avg": {
            "field": "balance"
          }
        }
      }
    }

    返回结果:

    Cardinality 求基数(如下示例,查找性别的基数 M、F,共两个)

    {
      "size": 0,
      "aggs": {
        "return_cardinality": {
          "cardinality": {
            "field": "gender"
          }
        }
      }
    }

    结果为:

    2、多值聚合

    percentiles 求百分比

    查看官方文档时候,没看懂,下面是自己测试时的例子,按照性别(F,M)查看工资范围的百分比

    {
      "size": 0,
      "aggs": {
        "states": {
          "terms": {
            "field": "gender"
          },
          "aggs": {
            "banlances": {
              "percentile_ranks": {
                "field": "balance",
                "values": [
                  20000,
                  40000
                ]
              }
            }
          }
        }
      }

    结果:

    stats 统计

    查看balance的统计情况:

    {
      "size": 0,
      "aggs": {
        "balance_stats": {
          "stats": {
            "field": "balance"
          }
        }
      }
    }

    返回结果:

    extended_stats 扩展统计

    {
      "size": 0,
      "aggs": {
        "balance_stats": {
          "extended_stats": {
            "field": "balance"
          }
        }
      }
    }

    结果:

    更加复杂的查询,后续慢慢在实践中道来。

  • 相关阅读:
    css实现水平/垂直居中效果
    Mac 下用homebrew安装配置MongoDB
    阿里云ECS搭建node/mongodb开发环境及部署
    阿里云首次安装和部署nginx
    前端学习借鉴目录
    040.[转] 对于程序框架的理解
    039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
    038.[转] JVM启动过程与类加载
    037.[转] springboot 配置多个数据源
    036.[转] JNDI 学习
  • 原文地址:https://www.cnblogs.com/pilihaotian/p/8823183.html
Copyright © 2011-2022 走看看