solrj getCountDistinct()返回null?

时间:2016-10-11 19:42:21

标签: lucene solrj

我试图通过代码获得字段的唯一值:

query.set("q","*:*" );
query.setGetFieldStatistics(true);
query.setGetFieldStatistics("popu_s");

QueryResponse rsp = solr.query(query);

FieldStatsInfo stats = rsp.getFieldStatsInfo().get("popu_s"); 
System.out.println(stats.getCount());
System.out.println(stats.getCountDistinct());

stats.getCount()给出正确的计数。但是,stats.getCountDistinct()始终返回null。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

FieldStatsInfo中的

getCountDistinct()为null,因为在创建FieldStatsInfo对象(从solr.query(query)返回的内容)时未提供它。

无法保证此pojo中的任何字段都已填充。

作为替代方案,请尝试使用stats.getCardinality(),但不能再保证这是poulated。

答案 1 :(得分:0)

找到解决方案! 要使getCountDistinct()返回值,需要添加此

   query.addStatsFieldCalcDistinct("popu_s", true);