2015-03-03 44 views
0

我正在使用Elasticsearch PHP客戶端運行以下查詢。每次在Elasticsearch中返回相同數量的存儲桶

 $queryString = ""; 

       if (!empty($ids)) { 
        $queryString = "an.raw:".implode(" OR an.raw:", $ids); 
       } 

       $reportParams['index'] = "my_index"; 
       $reportParams['type'] = "my_type"; 
       $reportParams['size'] = 100000; 

       $reportParams['body']['aggs'] = array(

        "ans"=>array(
         "terms"=>array(
          "field"=>"an.raw", 
          "size"=>0 
         ) 
        ) 
       ); 

       $reportParams['body']['query'] = array(
        "filtered" => array(
         "query" => array(
          "query_string" => array(
           "default_field" => "an", 
           "query" =>$queryString 
          ) 
         ) 
        ) 
       ); 

       $reportParams['body']['filter'] = array(
        "range" => array(
         "time" => array(
          "gte" => $start, 
          "lte" => $end 
         ) 
        ) 
       ); 

       $reportResponse = $this->client->search($reportParams); 

我在一個循環內運行它,每次查詢字符串和日期都會有所不同。但是我一直得到45個水桶。是否有任何最大限​​制設置爲45,並限制它45?或者程序中有任何錯誤?

回答

0

您已將size設置爲0因此您應該獲得所有適用的存儲桶。沒有像45桶那樣的限制。嘗試通過檢查術語聚合桶的關鍵值來調試您的查詢。

相關問題