es系列:获取按条查询出来真实的总数

elasticsearch版本7.x如果查询的结果大于1w条,则在total上的总数只是返回1w,如果想要获取真实的总数

实战: 

GET /mr_zcy/_count
{
  "query": {
    "wildcard": {
      "systemAssignedTo": "*000*"
    }
  }
}

方法1: "track_total_hits": true

POST  myindex/_search
{
  "track_total_hits": true,
  "query": {
    "match_all": {
     
    }
  },
  "size": 2
}

如果是要在java中进行跟踪真实的查询结果总数:searchSourceBuilder.trackTotalHits(true);

方法2:cat/count

GET _cat/count/kibana_sample_data_ecommerce?v
返回:
epoch      timestamp count
1585910697 10:44:57  4675

cat count api的方式能够快速的返回某个索引下文档的数量,需要注意的是已经删除的文档即使还没有物理删除(merge)也不会统计。
使用cat count api我们也可以不指定索引,从而查询整个集群的文档数量。
GET _cat/count?v

方法3: _count (最简单)

GET  myindex2/_count
{
  "count" : 92266,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  }
}

方法4: GET _cat/indices

整个命令其实主要是用来查询索引相关的信息的,而这些信息里面包含文档的数量。 比如,

GET _cat/indices/kibana_sample_data_ecommerce?v

 

和cat count api不同的是,cat indices命令统计的文档数量是底层所有的文档数量,如果你不太明天,我举个例子。
我们新增一个测试的索引,使用nested嵌套文档,关于嵌套文档可以看看这篇文章,这里不详述了。

我们先用cat count api查询下,结果是1,然后用cat indices查询,发现结果是3。这是为什么呢?

这是因为cat indices是直接从lucene获取的这些信息,而我们之前的文章讲过nested类型的属性其实在lucene内部是独立的文档,只不过在ES这一层隐藏了这些细节。

 方法5:聚合

GET /kibana_sample_data_ecommerce/_search
{
    "size" : 0,
    "aggs" : {
        "my_count" : {
            "value_count": {
              "field" : "_id"
            }
        }
    }
}

方法6:查看分片上的文档数量

有时候我们需要查看一个分片上文档数量,使用cat shards api可以做到。

GET _cat/shards/kibana_sample_data_ecommerce?v

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值