在elasticsearch QueryBuilders中使用setFrom时如何获取总结果数?

Vin*_*nay 3 java elasticsearch spring-boot

我正在使用 elasticsearch QueryBuilders 创建分页。我正在使用 setFrom 来获取有限的分页结果。但我需要总结果计数才能根据结果在分页中创建总页面链接。在 setFrom 应用于查询之前如何获得总计数?或者我必须再次编写相同的查询才能获得没有 setFrom 和大小的总计数?

这是我的查询

BoolQueryBuilder query = QueryBuilders.boolQuery();
for (String key : brands) {
    query.must(QueryBuilders.matchQuery("brand", key));
}

// search term
query.must(QueryBuilders.queryStringQuery(pSearchTerm + "*")
        .lenient(true).field("name"));

// price range
query.filter(QueryBuilders.rangeQuery("unit_price").from(min)
        .to(max));

SearchResponse searchresponse = client.prepareSearch("product")
        .setTypes("product").setQuery(query).setFrom(from).setSize(20)
        .setExplain(true).execute().actionGet();

SearchHit[] results = searchresponse.getHits().getHits();
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 9

您可以从以下位置获取您要查找的号码hits.total

long total = searchresponse.getHits().getTotalHits();
Run Code Online (Sandbox Code Playgroud)