1. 程式人生 > >Solr 高亮查詢程式碼記錄

Solr 高亮查詢程式碼記錄

        /**
         * 高亮查詢
         */
        //建立高亮查詢
        SimpleHighlightQuery query = new SimpleHighlightQuery();
        //設定查詢選項
        HighlightOptions highlightOptions = new HighlightOptions().addField("item_title");//需要將具體的域設定為高亮顯示,這裡設定複製域無效
        highlightOptions.setSimplePrefix("<em style='color:red'>");
        highlightOptions.setSimplePostfix("</em>");
        //將設定好的選項加入查詢
        query.setHighlightOptions(highlightOptions);
        //建立查詢條件,加入輸入的關鍵詞,,設定要查的欄位,,後面匹配關鍵詞
        Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords"));
        //加入查詢
        query.addCriteria(criteria);
        //執行查詢
        HighlightPage<TbItem> tbItems = solrTemplate.queryForHighlightPage(query, TbItem.class);
        //此時這個結果不是高亮的結果
        List<HighlightEntry<TbItem>> page = tbItems.getHighlighted();//獲取高亮條目
        for (HighlightEntry<TbItem> entry : page) {
            TbItem TbItem = entry.getEntity();//原查詢結果物件
            if (entry.getHighlights().size()>0&&entry.getHighlights().get(0).getSnipplets().size()>0) {
                //不為 空值 就把高亮結果設定進去
                TbItem.setTitle(entry.getHighlights().get(0).getSnipplets().get(0));
            }
        }
//獲取結果,設定到map集合中返回給前臺
        resultMap.put("itemList", tbItems.getContent());
        return resultMap;

記錄下高亮查詢的程式碼寫法...以備以後要用...