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

結果:

 

更加復雜的查詢,后續慢慢在實踐中道來。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM