在Spring Data Solr中使用组功能时,Pageable不能为null异常

在Spring Data Solr中使用组功能时,Pageable不能为null异常,spring,spring-boot,spring-data-solr,Spring,Spring Boot,Spring Data Solr,使用springboot数据solr和SolrTemplate的文档示例创建group by查询时,我收到结果,但没有分组信息。查看示例代码时: Field field = new SimpleField("popularity"); Function func = ExistsFunction.exists("description"); Query query = new SimpleQuery("inStock:true"); SimpleQuery groupQuery = new S

使用springboot数据solr和SolrTemplate的文档示例创建group by查询时,我收到结果,但没有分组信息。查看示例代码时:

Field field = new SimpleField("popularity");
Function func = ExistsFunction.exists("description");
Query query = new SimpleQuery("inStock:true");

SimpleQuery groupQuery = new SimpleQuery(new SimpleStringCriteria("*:*"));
GroupOptions groupOptions = new GroupOptions()
    .addGroupByField(field)
    .addGroupByFunction(func)
    .addGroupByQuery(query);
groupQuery.setGroupOptions(groupOptions);

GroupPage<Product> page = solrTemplate.queryForGroupPage("collection-1", query, Product.class);

GroupResult<Product> fieldGroup = page.getGroupResult(field);
GroupResult<Product> funcGroup = page.getGroupResult(func);
GroupResult<Product> queryGroup = page.getGroupResult(query);
Field=newsimplefield(“流行”);
函数func=existsffunction.exists(“说明”);
Query=new SimpleQuery(“inStock:true”);
SimpleQuery groupQuery=新的SimpleQuery(新的SimpleStringCriteria(“*:*”);
GroupOptions GroupOptions=新的GroupOptions()
.addGroupByField(字段)
.addGroupByFunction(func)
.addGroupByQuery(查询);
setGroupOptions(groupOptions);
GroupPage=solrTemplate.queryForGroupPage(“collection-1”,查询,Product.class);
GroupResult fieldGroup=page.getGroupResult(字段);
GroupResult funcGroup=page.getGroupResult(func);
GroupResult queryGroup=page.getGroupResult(查询);
似乎创建了一个组查询,但是对queryForGroupPage的调用没有使用它,这可以解释为什么我没有收到任何分组信息。如果我将groupQuery对象传递给调用,则会收到一个“页面不能为Null”错误

我已经测试过其他查询类型,但没有出现这个错误,所以它似乎只是影响了我的这一个函数。我尝试过使用一个旧的springboot版本和一个旧的Solr版本,匹配这两个版本,同样的问题也发生了

我在设置中没有任何其他Solr问题,所以不要认为我的配置中缺少任何东西

以下是该错误的stacktrace片段

11:15:14323错误[stderr](默认任务-1)java.lang.IllegalArgumentException:可分页不能为null! 11:15:14325 org.springframework.util.Assert.notNull(Assert.java:198)处的错误[stderr](默认任务-1) 11:15:14326 org.springframework.data.domain.Chunk上的错误[stderr](默认任务-1)。(Chunk.java:54) 11:15:14327 org.springframework.data.domain.PageImpl.(PageImpl.java:46)处的错误[stderr](默认任务-1) 11:15:14328 org.springframework.data.solr.core.resulteper.convertGroupQueryResponseToGroupResultMap(resulteper.java:306)处的错误[stderr](默认任务-1) 11:15:14329 org.springframework.data.solr.core.SolrTemplate.createSolrResultPage(SolrTemplate.java:448)处的错误[stderr](默认任务-1) 11:15:14330 org.springframework.data.solr.core.SolrTemplate.doqueryformage(SolrTemplate.java:305)处的错误[stderr](默认任务-1) 11:15:14330 org.springframework.data.solr.core.SolrTemplate.queryForGroupPage(SolrTemplate.java:357)处的错误[stderr](默认任务-1) 11:15:14331 org.springframework.data.solr.core.SolrTemplate.queryForGroupPage(SolrTemplate.java:346)处的错误[stderr](默认任务-1)

有人看到过按功能分组的工作示例吗?我还搜索了任何东西,在官方文档中找不到样本代码之外的参考


谢谢,
在这里输入代码

我想我解决了这个问题。您应该设置GroupOptions限制。下面是示例代码

GroupOptions groupOptions = new GroupOptions()
.addGroupByField(field)
.addGroupByFunction(func)
.addGroupByQuery(query)
.setLimit(1000);
groupQuery.setGroupOptions(groupOptions);

我也有同样的问题,通过这样做解决了。

嘿,你找到解决这个问题的方法了吗?我也有同样的问题。@DarrenP同样的问题。你能解决这个问题吗?