我试图通过代码获得字段的唯一值:
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。 有什么想法吗?
答案 0 :(得分:0)
getCountDistinct()
为null,因为在创建FieldStatsInfo对象(从solr.query(query)
返回的内容)时未提供它。
无法保证此pojo中的任何字段都已填充。
作为替代方案,请尝试使用stats.getCardinality()
,但不能再保证这是poulated。
答案 1 :(得分:0)
找到解决方案!
要使getCountDistinct()
返回值,需要添加此
query.addStatsFieldCalcDistinct("popu_s", true);