繁体   English   中英

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

[英]How to get total result count when setFrom is used in elasticsearch QueryBuilders?

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

这是我的查询

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();

您要查找的数字是hits.total ,您可以从中获得:

long total = searchresponse.getHits().getTotalHits();

不,您不必再次编写查询。 只需使用

searchResponse.getHits().getTotalHits()

SearchHits 对象提供有关所有命中的全局信息。

因此,您需要以下内容来获得总数:

long totalCount = searchResponse.getHits().getTotalHits();

您可以查看文档以了解此类其他需求。

您可能需要再执行一次查询才能获得总点击次数。 看一看: Counting number of documents using Elasticsearch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM