2016-04-20 23 views
1

Ich möchte Statistiken über einen Feldnamen "CpuEff" für jedes eindeutige Feld "DESIRED_CMS_Dataset" sammeln. Also ich dies schrieb,ElasticSearch Aggregation für eindeutigen Feld Wert

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

Das gibt eine weder gibt mir die Statistik noch gibt mir nur das Feld DESIRED_CMSDataset. Stattdessen erhalte ich eine Reihe von

{ 
     "_index" : "cms-2016-03-30", 
     "_type" : "job", 
     "_id" : "[email protected]#6248657.0#1459314096", 
     "_score" : 1.0, 
     "_source" : { 
     "CoreHr" : 1.1066666666666667, 
     "DataCollectionDate" : 1459318128, 
     "JobStartDate" : 1459314144, 
     "Requirements" : false, 
... 

So würde Ich mag meine Abfrage beheben, so dass ich nur DESIRED_CMSDataset und die Ergebnisse sehen, dass this sagt soll ich (dh avg, sum, ...) für jeden eindeutigen Wert erhalten von DESIRED_CMSDataset.

Antwort

3

standardmäßig Elasticsearch 20 Dokumente auf der Suche Anfrage liefert Ihnen „Größe“ hinzufügen: 0 zur Ausgabe wieder nur Ansammlungen

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" } 
         } 
        } 
       } 
     } 
}' 
+0

Perfekt außer ich nur 10 Aggregationen. Ich möchte alle von ihnen für jedes mögliche einzigartige DESIRED_CMSDataset. Das zu lösen wird mein Problem vollständig lösen. Danke –

+1

Sie können * Größe * Feld in * Begriffe * Aggregation verwenden. Wenn der Wert 0 ist, wird die Größe auf Integer.MAX_VALUE gesetzt. Ich habe die Antwort aktualisiert. – pkhlop

+1

Wow! Vielen Dank. Sie sind die erste Person, die eine meiner ElasticSearch-Fragen zu StackOverflow beantwortet hat. Die meisten Leute verweisen nur auf eine Dokumentation, die mich nur mehr verwirrt. –

Verwandte Themen