2016-08-04 1 views
0

L'exécution du code,ElasticSearch DSL: Godet ne fonctionne pas

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'] 

cède plusieurs ExitCode = 0. Je pensais que un seau termes est censé regrouper tous les résultats qui ont le même code de sortie, dans ce cas. Que se passe-t-il réellement?

Répondre

1

Vous itérer sur les coups, vous devez itérer sur les seaux agrégés à la place:

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