elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

如何使用JavaAPI获取所有字段的方面值

如何使用JavaAPI获取所有字段的方面值,java,elasticsearch,Java,elasticsearch,我是Elasticsearch新手,尝试查询一些示例文档。我使用JavaAPI发出了以下查询。这个查询给了我正确的结果。它返回所有类别的名称。现在我想要一个类别的所有名称的计数。你能解释一下怎么做吗?我很抱歉我的英语不好 SearchResponse sr = client.prepareSearch() .addField("Category") .setQuery(QueryBuilders.matchAllQuery()) .addFa

我是Elasticsearch新手,尝试查询一些示例文档。我使用JavaAPI发出了以下查询。这个查询给了我正确的结果。它返回所有类别的名称。现在我想要一个类别的所有名称的计数。你能解释一下怎么做吗?我很抱歉我的英语不好

SearchResponse sr = client.prepareSearch()
         .addField("Category")
         .setQuery(QueryBuilders.matchAllQuery())
         .addFacet(FacetBuilders.termsFacet("f")
         .field("Category"))
         .execute()
         .actionGet();
如果您不想得到结果集匹配的文档,而只想得到计数,请查看以计算结果


如果您想获得结果集,您还可以在每个筛选器或查询请求的响应中获得结果大小。

很抱歉,我没有正确解释问题。请看,我有一个类别字段。现在我想要这个字段的所有值以及每个值的计数。例如{Category:Mobile}{Category:Computer}我想要移动设备和计算机的数量。好的,您需要一个方面:。如果可以,请使用过滤器方面。过滤器由elasticsearch缓存,因此响应不超过10毫秒。谢谢。但我知道这一点。我想用JavaAPI实现它。@bunny请提供脚本方面的代码。我的要求和你的一样。在elasticsearch 1.0版本>中,facet已被弃用,你最好切换到聚合。