首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在elasticsearch7中获取索引的项计数?

如何在elasticsearch7中获取索引的项计数?
EN

Stack Overflow用户
提问于 2019-05-21 04:19:09
回答 2查看 5K关注 0票数 3

使用elasticsearch 6.7时,

代码语言:javascript
运行
AI代码解释
复制
GET /indexName/_search 

返回索引的确切总数:

代码语言:javascript
运行
AI代码解释
复制
"hits" : {
    "total" : 1527325,
    "max_score" : 1.0,
    ...}

但在ElasticSearch7.0中

代码语言:javascript
运行
AI代码解释
复制
GET /indexName/_search

获取:

代码语言:javascript
运行
AI代码解释
复制
"hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },

这意味着总数大于10000,那么我如何才能得到7.0中索引的确切总数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-21 04:25:26

从ES 7.0.0开始,您需要使用track_total_hits参数:

代码语言:javascript
运行
AI代码解释
复制
GET /indexName/_search?track_total_hits=true

如果希望返回与前7版本相同的格式(将在ES 8中删除的临时参数),还可以添加rest_total_hits_as_int参数:

代码语言:javascript
运行
AI代码解释
复制
GET /indexName/_search?track_total_hits=true&rest_total_hits_as_int=true
票数 7
EN

Stack Overflow用户

发布于 2019-12-20 00:29:33

对于使用Java客户端的ES 7.5.0,可以使用

代码语言:javascript
运行
AI代码解释
复制
sourceBuilder.trackTotalHits(true);

使用源生成器准备搜索请求

代码语言:javascript
运行
AI代码解释
复制
SearchRequest searchRequest = new SearchRequest(index);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(queryBuilder);
sourceBuilder.sort(sortBuilder);
sourceBuilder.from(from); 
sourceBuilder.size(size); 
sourceBuilder.trackTotalHits(true);
searchRequest.source(sourceBuilder);
client.search(searchRequest,RequestOptions.DEFAULT);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56238141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档