2016-08-04 10 views
0

den Code Rennen,Elasticsearch DSL: Bucket funktioniert nicht

from elasticsearch import Elasticsearch 
from elasticsearch_dsl import Search, Q, A 

client = Elasticsearch(timeout=100) 

s = Search(using=client, index="cms*") 
s.aggs.bucket('ExitCode', 'terms', field='ExitCode').metric('avgCpuEff', 'avg', field='CpuEff') 

for hit in s[0:20].execute(): 
    print hit['ExitCode'] 

ergibt mehrere Exitcode = 0. Ich dachte, ein Begriff Eimer Gruppe der Ergebnisse alle, die den gleichen Exit-Code haben soll, in diesem Fall. Was geht eigentlich vor?

Antwort

1

Sie über die Hits Iterieren, müssen Sie über den aggregierten Eimer iterieren statt:

response = s.execute() 
for code in response.aggregations.ExitCode.buckets: 
    print(code.key, code.avgCpuEff.value)