2017-11-10 17 views
0

elasticsearch에 연결하고 집계를 수행 할 때 elasticsearch-dsl 파이썬 라이브러리를 사용하고 있습니다.elasticsearch-dsl aggregations는 10 개의 결과 만 반환합니다. 변경하는 방법

나는이 잘 작동하지만 response.aggregations.per_ts.buckets

에만 10 개의 결과 내가 원하는 반환

 search.aggs.bucket('per_date', 'terms', field='date')\ 
      .bucket('response_time_percentile', 'percentiles', field='total_time', 
        percents=percentiles, hdr={"number_of_significant_value_digits": 1}) 
    response = search.execute() 

코드를 다음입니다 this question

에서 언급 한 바와 같이 나는 size=0 하나 개의 솔루션을 시도

모든 결과

search.aggs.bucket('per_ts', 'terms', field='ts', size=0)\ 
      .bucket('response_time_percentile', 'percentiles', field='total_time', 
        percents=percentiles, hdr={"number_of_significant_value_digits": 1}) 

    response = search.execute() 

그러나이 결과는 오류가 발생합니다.

TransportError(400, u'parsing_exception', u'[terms] failed to parse field [size]') 

답변

0

documentation을 읽어야합니다. 귀하의 경우 그래서

이는 다음과 같이해야합니다 :

search.aggs.bucket('per_date', 'terms', field='date')\ 
      .bucket('response_time_percentile', 'percentiles', field='total_time', 
        percents=percentiles, hdr={"number_of_significant_value_digits": 1})[0:50] 
    response = search.execute() 
+0

나는이 피곤이 있지만이 오류가 작동하지 않습니다 퍼센트의 = 백분위, HDR = { "number_of_significant_value_digits": 1}) [0 : 20] TypeError : 'Percentiles'객체에 '__getitem__'속성이 없습니다. –

+0

다음과 같이 검색을 초기화합니까 : 'search = Search()'? – user7953086