在Spring Data Solr中使用组功能时,Pageable不能为null异常
使用springboot数据solr和SolrTemplate的文档示例创建group by查询时,我收到结果,但没有分组信息。查看示例代码时:在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
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同样的问题。你能解决这个问题吗?