Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 哪种方法是获得聚合所有结果的最有效方法_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch 哪种方法是获得聚合所有结果的最有效方法,elasticsearch,elasticsearch" /> elasticsearch 哪种方法是获得聚合所有结果的最有效方法,elasticsearch,elasticsearch" />

elasticsearch 哪种方法是获得聚合所有结果的最有效方法

elasticsearch 哪种方法是获得聚合所有结果的最有效方法,elasticsearch,elasticsearch,我有以下疑问: GET my-index-*/my-type/_search { "size": 0, "aggregations": { "my_agg": { "terms": { "script" : "code" }, "aggs": { "dates": { "date_range": { "field": "created_time",

我有以下疑问:

GET my-index-*/my-type/_search
{
  "size": 0,
  "aggregations": {
    "my_agg": {
      "terms": {
        "script" : "code"
      },
      "aggs": {
        "dates": {
          "date_range": {
            "field": "created_time",
            "ranges": [
              {
                "from": "2017-12-09T00:00:00.000",
                "to": "2017-12-09T16:00:00.000"
              },
              {
                "from": "2017-12-10T00:00:00.000",
                "to": "2017-12-10T16:00:00.000"
              }
            ]
          }
        },
        "total_count": {
          "sum_bucket": {
          "buckets_path": "dates._count"
          }
        },
        "bucket_filter": {
          "bucket_selector": {
            "buckets_path": {
              "totalCount": "total_count"
            },
            "script": "params.totalCount == 0"
          }
        }
      }
    }
  }
}

这个查询的结果是一堆桶。我需要的是我水桶钥匙的清单。问题是聚合结果的大小默认为10,在获得这10个之后,我的
bucket\u filter
会根据总计数对它们进行过滤,而我只得到其中的一些。我需要得到所有结果,这意味着我需要指定
“size”=n
,其中
n
code
值的不同计数,这样我就不会丢失任何数据。我有数十亿个文档,所以在我的例子中,
n
大约是30000个。当我尝试执行查询时,集群上出现了“内存不足”,所以我想这不是最好的办法。有没有一种好方法可以获取我的查询的所有结果?

不幸的是,对于具有30K唯一值的高真实性字段,不建议这样做。原因是因为内存成本和需要从碎片中收集的大量数据。它可能会工作,但你需要更多的内存

更有效的解决方案是使用
滚动API
,在搜索请求中的
字段中指定要从字段中检索的值,然后将这些值存储在客户端内存中或流式处理

更新:自ES 6.5以来,这在复合聚合中已成为可能,请参阅