使用elasticsearch 6.7时,
GET /indexName/_search
返回索引的确切总数:
"hits" : {
"total" : 1527325,
"max_score" : 1.0,
...}
但在ElasticSearch7.0中
GET /indexName/_search
获取:
"hits" : {
"total" : {
"value" : 10000,
"relation" : "gte"
},
这意味着总数大于10000,那么我如何才能得到7.0中索引的确切总数?
发布于 2019-05-21 04:25:26
从ES 7.0.0开始,您需要使用track_total_hits
参数:
GET /indexName/_search?track_total_hits=true
如果希望返回与前7版本相同的格式(将在ES 8中删除的临时参数),还可以添加rest_total_hits_as_int
参数:
GET /indexName/_search?track_total_hits=true&rest_total_hits_as_int=true
发布于 2019-12-20 00:29:33
对于使用Java客户端的ES 7.5.0,可以使用
sourceBuilder.trackTotalHits(true);
使用源生成器准备搜索请求
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);
https://stackoverflow.com/questions/56238141
复制