簡體   English   中英

如何查詢elasticsearch中的distinct count分布

[英]How to query distinct count distibution in elasticsearch

基數聚合查詢計算不同值的近似計數。 我們如何計算文檔的基數分布?

例如假設我們有:

a,a,a,b,b,b,c,c,d,d,e

不同的計數分布是:

3: 2 # count of distint element that have 3 occurnes (a, b) 
2: 2 # c, d
1: 1 # e

實際上你不能像這樣進行聚合。

但是,使用transform API ( https://www.elastic.co/guide/en/elasticsearch/reference/current/transform-examples.html ) 您可以創建一個新索引來進行簡單的terms聚合:

PUT _transform/so
{
  "dest" : {
   "index" : "my-so"
  },
  "source": {
    "index": "my-index"
  },
  "pivot": {
    "group_by": { 
      "country": {
        "terms": {
          "field": "letter"
        }
      }
    },
    "aggregations": {
      "cardinality": {
        "value_count": { 
          "field" : "letter"
        }
      }
    }
  }
}

這會給你:

[
    {
      "country" : "a",
      "cardinality" : 22
    },
    {
      "country" : "b",
      "cardinality" : 4
    },
    {
      "country" : "c",
      "cardinality" : 5049
    }...

然后,您可以使用簡單的術語或直方圖聚合:

GET /my-so/_search
{
  "size" : 0,
  "aggs": {
    "cc": {
      "terms": {
        "field": "cardinality"
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM