elasticsearch 用于唯一字段值的ElasticSearch聚合,elasticsearch,elasticsearch" /> elasticsearch 用于唯一字段值的ElasticSearch聚合,elasticsearch,elasticsearch" />

elasticsearch 用于唯一字段值的ElasticSearch聚合

elasticsearch 用于唯一字段值的ElasticSearch聚合,elasticsearch,elasticsearch,我想为每个唯一的字段“DESIRED_CMS_Dataset”收集字段名“CpuEff”的统计信息。所以我写了这个 curl -XPOST 'http://localhost:9200/cms-2016-03-30/job/_search?pretty=true' -D' { "aggregations" : { "data" : { "terms": { "fie

我想为每个唯一的字段“DESIRED_CMS_Dataset”收集字段名“CpuEff”的统计信息。所以我写了这个

curl -XPOST 'http://localhost:9200/cms-2016-03-30/job/_search?pretty=true' -D'
{
        "aggregations" : {
                "data" : {
                  "terms": {
                        "field": "DESIRED_CMSDataset"
                        "order": {
                                "cnt" : "desc"
                        }
                   },
                   "aggregations" : {
                        "data_stats" : {
                                "extended_stats" : { "field" : "CpuEff" }
                        }
                   }
                 }
        }
}'
这提供了一个既不提供统计信息也不提供所需字段的数据集。相反,我得到了一堆

{
      "_index" : "cms-2016-03-30",
      "_type" : "job",
      "_id" : "crab3-4@vocms066.cern.ch#6248657.0#1459314096",
      "_score" : 1.0,
      "_source" : {
        "CoreHr" : 1.1066666666666667,
        "DataCollectionDate" : 1459318128,
        "JobStartDate" : 1459314144,
        "Requirements" : false,
...

因此,我想修复我的查询,以便我只看到所需的\u CMSDataset以及表示我应该为所需的\u CMSDataset的每个唯一值获取的结果(即平均值、总和…)。

默认情况下,elasticsearch在搜索请求中返回20个文档,您可以添加“大小”:0以仅输出聚合

curl -XPOST 'http://localhost:9200/cms-2016-03-30/job/_search?pretty=true' -D'
{
        "size": 0, 
        "aggs" : {
                "data" : {
                  "terms": {
                        "field": "DESIRED_CMSDataset"
                        "size": 0,
                        "order": {
                                "_count" : "desc"
                        }
                   },
                   "aggs" : {
                        "data_stats" : {
                                "extended_stats" : { "field" : "CpuEff" }
                        }
                   }
                 }
        }
}'

完美不过我只得到10个聚合。我希望所有这些都适用于所有可能的唯一所需数据集。解决这个问题将完全解决我的问题。感谢您可以在术语聚合中使用大小字段。如果设置为0,则大小将设置为Integer.MAX\u值。我已经更新了答案。哇!非常感谢。你是第一个真正回答我关于StackOverflow的ElasticSearch问题的人。大多数人只是给我指出一些让我更加困惑的文档。