elasticsearch 用于唯一字段值的ElasticSearch聚合
我想为每个唯一的字段“DESIRED_CMS_Dataset”收集字段名“CpuEff”的统计信息。所以我写了这个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
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问题的人。大多数人只是给我指出一些让我更加困惑的文档。