Lucene solrj getCountDistinct()返回空值?

Lucene solrj getCountDistinct()返回空值?,lucene,solrj,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.get

我正在尝试使用以下代码获取字段的唯一值:

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());
getCount()给出了正确的计数。但是,stats.getCountDistinct()始终返回null。 有什么想法吗?

中的getCountDistinct()
为空,因为在创建FieldStatInfo对象时没有提供它(从
solr.query(query)
返回的内容)

不能保证此pojo中的任何字段都已填充

作为一种替代方法,尝试使用
stats.getCardinality()
,尽管同样不能保证这是公开的。

getCountDistinct()
in为空,因为在创建FieldStatInfo对象时没有提供它(从
solr.query(query)
返回的内容)

不能保证此pojo中的任何字段都已填充

另一种方法是尝试使用
stats.getCardinality()
,尽管同样不能保证这是正确的。

找到了解决方案! 要使
getCountDistinct()
返回一个值,需要添加以下内容

   query.addStatsFieldCalcDistinct("popu_s", true);
找到了解决办法! 要使
getCountDistinct()
返回一个值,需要添加以下内容

   query.addStatsFieldCalcDistinct("popu_s", true);

谢谢
stats.getCardinality()
也返回null。那么如何让countDistinct工作呢?正如答案中提到的,它依赖于
solr.query(query)
返回一个包含所有所需值的完全填充响应。这里无法回答,因为我们不知道您的数据集/查询等,因此超出了SO的范围。谢谢。我是否可以控制返回完全填充的响应的
solr.query(query)
?我已经指定了我的代码
query.set(“q”,“*:*”)要求所有文档。查询q可以是您想要的任何内容。谢谢
stats.getCardinality()
也返回null。那么如何让countDistinct工作呢?正如答案中提到的,它依赖于
solr.query(query)
返回一个包含所有所需值的完全填充响应。这里无法回答,因为我们不知道您的数据集/查询等,因此超出了SO的范围。谢谢。我是否可以控制返回完全填充的响应的
solr.query(query)
?我已经指定了我的代码
query.set(“q”,“*:*”)它要求所有文档。查询q可以是您想要的任何内容。