E.A*_*.A. 5 java statistics solrj solr-query-syntax
我有一个像这样的 solr 查询
q=categories:cat1 OR categories:cat2&stats=true&stats.field=count&stats.facet=block_num
Run Code Online (Sandbox Code Playgroud)
基本上,我想按块编号获取总和(计数)组。
此查询适用于浏览器。但使用 solrj,我无法从 Response obj 访问统计字段。我可以做一个response.getFieldStatsInfo()。但这不是我想要的。这是我构建查询的方式
SolrQuery query = new SolrQuery(q);
query.add("stats", "true");
query.add("stats.field", "count");
query.add("stats.facet", "block_num");
Run Code Online (Sandbox Code Playgroud)
使用调试器,我可以看到响应有一个私有 statsInfo 对象,并且它包含我正在查找的信息。但是没有API来访问该对象。
我想知道是否有
谢谢!
小智 4
可以这样做:
// 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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |