在Elasticsearch中每次返回相同数量的存储桶

时间:2015-03-03 07:29:21

标签: elasticsearch aggregate

我使用Elasticsearch PHP客户端运行以下查询。

        $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并且限制为ti 45?或者程序中的任何错误?

1 个答案:

答案 0 :(得分:0)

您已将size设置为0,因此您应该获得所有适用的存储分区。 45桶没有这样的限制。尝试通过检查术语聚合桶的关键值来调试查询。