Java 如何使用solrj 4.9.0提取统计数据组件
我有一个这样的solr查询Java 如何使用solrj 4.9.0提取统计数据组件,java,statistics,solrj,solr-query-syntax,Java,Statistics,Solrj,Solr Query Syntax,我有一个这样的solr查询 q=categories:cat1 OR categories:cat2&stats=true&stats.field=count&stats.facet=block_num 基本上,我想通过block num获得sum(count)组 此查询在浏览器上工作。但是有了solrj,我无法从Response obj访问stats字段。我可以做一个响应。getFieldStatsInfo()。但这不是我想要的。下面是我如何构造查询的 Sol
q=categories:cat1 OR categories:cat2&stats=true&stats.field=count&stats.facet=block_num
基本上,我想通过block num获得sum(count)组
此查询在浏览器上工作。但是有了solrj,我无法从Response obj访问stats字段。我可以做一个响应。getFieldStatsInfo()。但这不是我想要的。下面是我如何构造查询的
SolrQuery query = new SolrQuery(q);
query.add("stats", "true");
query.add("stats.field", "count");
query.add("stats.facet", "block_num");
通过调试器,我可以看到响应有一个私有的StatInfo对象,它有我正在寻找的信息。但是没有api来访问该对象
我想知道是否有
谢谢!可以执行以下操作:
// Field names
private static final String FIELD_ONE = "field_one";
private static final String FIELD_TWO = "field_two";
// Initialized somewhere in constructor
private final HttpSolrServer solrClient;
public void printStats() throws SolrServerException {
final SolrQuery query = new SolrQuery("*:*");
query.setGetFieldStatistics(true);
query.setGetFieldStatistics(FIELD_ONE);
query.setGetFieldStatistics(FIELD_TWO);
final QueryResponse response = solrClient.query(query);
final FieldStatsInfo fieldOneStats = response.getFieldStatsInfo().get(FIELD_ONE);
System.out.println(fieldOneStats.getSum());
System.out.println(fieldOneStats.getMin());
System.out.println(fieldOneStats.getMax());
final FieldStatsInfo fieldTwoStats = response.getFieldStatsInfo().get(FIELD_TWO);
System.out.println(fieldTwoStats.getSum());
System.out.println(fieldTwoStats.getMin());
System.out.println(fieldTwoStats.getMax());
}