品優購_根據keywords查詢分類顯示
阿新 • • 發佈:2018-11-16
根據關鍵字查詢分類只能用分組查詢,此時前臺傳入一個Map searchMap 裡面封裝了keywords條件,然後利用solr的分組查詢功能,獲取裡面的分組資訊
//解釋:根據兩個條件1關鍵字 2分組欄位 將2個條件封裝到query中,呼叫template得到分組頁,通過分頁得到分頁的value名 public List<String> categoryList(Map searchMap){ List<String> list = new ArrayList<>(); //0 解析引數searchMap String keywords = (String) searchMap.get("keywords"); //2 建立query Query query =new SimpleQuery(); //4 設定關鍵字查詢 Criteria criteria = new Criteria("item_keywords").is(keywords); query.addCriteria(criteria); //3 設定分組選項(通過category進行分組) GroupOptions groupOption =new GroupOptions().addGroupByField("item_category"); query.setGroupOptions(groupOption); //1 通過模板獲取分組和關鍵字查詢,得到分組頁 GroupPage<TbItem> page = solrTemplate.queryForGroupPage(query, TbItem.class); //5 根據solr欄位名得到分組結果集 GroupResult<TbItem> groupResult = page.getGroupResult("item_category"); //6 得到分組結果集的入口頁 Page<GroupEntry<TbItem>> groupEntries = groupResult.getGroupEntries(); //7 得到分組入口集合 List<GroupEntry<TbItem>> content = groupEntries.getContent(); //8 將分組結果的名稱分裝到結果集中 for (GroupEntry<TbItem> entity : content) { list.add(entity.getGroupValue()); } return list; }