我试图使用SimpleQuery从我的solr集合中获得不同的结果,但即使在用calcDistinct true设置了我的StatsOption之后,我也无法获得我想要的结果。
顺便说一句,我使用的是spring-data-solr-2.1.4.RELEASE。
SampleCode:
Field field = new SimpleField("fieldName");
StatsOptions statsOptions = new StatsOptions().addField(field).setCalcDistinct(true);
SimpleQuery query = new SimpleQuery("*:*").setStatsOptions(statsOptions);
StatsPage<MyClass> statsPage = solrTemplate.queryForStatsPage(query, MyClass.class);
FieldStatsResult statsResult = statsPage.getFieldStatsResult(field);
Collection<Object> distinctValues = statsResult.getDistinctValues();
Set<String> result = distinctValues.stream().map((i) -> i.toString()).collect(Collectors.toSet());
return result;在尝试上面的代码后,我得到的只是max、min、count,但没有不同总数或不同值的结果。

我在这个示例中做错了什么?
发布于 2017-09-07 05:29:08
看起来您的disctintValues集合也是EmptyList的实现,这意味着响应中没有值。
首先检查您的查询是否返回任何结果。
发布于 2018-12-10 11:12:12
StatsOptions statsOptions = new StatsOptions().addField(field).setSelectiveCalcDistinct(true).setCalcDistinct(true);org.springframework.data.solr.core.DefaultQueryParser中的processStatsOptions方法说明如下:
Boolean selectiveCountDistincts = statsOptions.isSelectiveCalcDistincts(field);
if (selectiveCountDistincts != null) {
solrQuery.add(selectiveCalcDistinctParam, String.valueOf(selectiveCountDistincts.booleanValue()));
}https://stackoverflow.com/questions/46043073
复制相似问题