一尘不染

显示所有Elasticsearch聚合结果/存储桶,而不仅仅是10

elasticsearch

我正在尝试列出聚合中的所有存储桶,但似乎只显示了前10个。

我的搜索:

curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d'
{
   "size": 0, 
   "aggregations": {
      "bairro_count": {
         "terms": {
            "field": "bairro.raw"
         }
      }
   }
}'

返回值:

{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 16920,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "bairro_count" : {
      "buckets" : [ {
        "key" : "Barra da Tijuca",
        "doc_count" : 5812
      }, {
        "key" : "Centro",
        "doc_count" : 1757
      }, {
        "key" : "Recreio dos Bandeirantes",
        "doc_count" : 1027
      }, {
        "key" : "Ipanema",
        "doc_count" : 927
      }, {
        "key" : "Copacabana",
        "doc_count" : 842
      }, {
        "key" : "Leblon",
        "doc_count" : 833
      }, {
        "key" : "Botafogo",
        "doc_count" : 594
      }, {
        "key" : "Campo Grande",
        "doc_count" : 456
      }, {
        "key" : "Tijuca",
        "doc_count" : 361
      }, {
        "key" : "Flamengo",
        "doc_count" : 328
      } ]
    }
  }
}

对于此聚合,我有10个以上的键。在此示例中,我将有145个键,并且我希望每个键的计数。桶上有分页吗?我可以全部拿走吗?

我正在使用Elasticsearch 1.1.0


阅读 379

收藏
2020-06-22

共1个答案

一尘不染

size参数应该是术语查询示例的参数:

curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d'
{
   "size": 0,
   "aggregations": {
      "bairro_count": {
         "terms": {
            "field": "bairro.raw",
             "size": 0
         }
      }
   }
}'

如文档中所述,仅适用于1.1.0版及更高版本

编辑

根据@PhaedrusTheGreek评论更新答案。

size:0由于高基数字段值在群集上造成内存问题,因此从2.x开始不推荐使用此设置。您可以在github
问题中阅读有关它的更多信息。

建议为size1到2147483647之间的数字显式设置合理的值。

2020-06-22