版权声明:转载请标明出处~~ https://blog.csdn.net/weixin_43231076/article/details/83181030
1.构造查询对象
List<String> list = new ArrayList<String>();
//创建query对象
Query query = new SimpleQuery("*:*");;
//设置查询条件
//查询solr中自定义的复制域,匹配传过来的关键字
Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords"));
query.addCriteria(criteria);
2.构件分选选项对象
//构造分组选项对象
GroupOptions groupOptions = new GroupOptions();
//设置要进行分组的域名,可以设置多个,在后面接.addField("")即可
groupOptions.addGroupByField("item_category");
//给query设置分组选项
query.setGroupOptions(groupOptions);
3.分组查询,得到分组数据
//分组查询,获取分组页
GroupPage<TbItem> page = solrTemplate.queryForGroupPage(query, TbItem.class);
//根据域名,获取分页结果对象(以下得到的数据,都是针对于这里设置的域的结果)
//这个域名,一定要是在上面进行分组过的域名
GroupResult<TbItem> groupResult = page.getGroupResult("item_category");
//获取分组入口页
Page<GroupEntry<TbItem>> groupEntries = groupResult.getGroupEntries();
//从分组入口页groupEntries中获取分组入口集合
List<GroupEntry<TbItem>> entryList = groupEntries.getContent();
//从entryList中取出每一个分组结果
for (GroupEntry<TbItem> entry : entryList) {
String result = entry.getGroupValue();
list.add(result);
}
return list;