黑马程序员技术交流社区

标题: 【郑州校区】SolrQuery实现高亮显示 [打印本页]

作者: 我是楠楠    时间: 2019-4-25 15:00
标题: 【郑州校区】SolrQuery实现高亮显示
【郑州校区】SolrQuery实现高亮显示

[AppleScript] 纯文本查看 复制代码
@Test
        public void testHighLightingQuery() throws SolrServerException, IOException{
               
                // 初始化solrj服务
                HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/core2");
                // 设置查询条件
                SolrQuery query = new SolrQuery("title:iphone");
                // 设置前置标签
                query.setHighlightSimplePre("<em>");
                // 设置后置标签
                query.setHighlightSimplePost("</em>");
                // 添加高亮字段
                query.addHighlightField("title");
                // 执行查询
                QueryResponse queryResponse = server.query(query);
               
                // 处理返回结果
                List<Item> items = queryResponse.getBeans(Item.class);
                // 外层的Map,key:id,value:id以外的其他高亮字段,可能有多个,也是一个Map
                // 内层的Map,key:高亮字段的名称,value:字段的内容,集合
                Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
               
                // 遍历map,获取结果
                /*Set<String> ids = highlighting.keySet();
                for (String id : ids) {
                        System.out.println("id: " + id);;
                        // 获取高亮字段的集合
                        Map<String, List<String>> map = highlighting.get(id);
                        // 获取高亮字段
                        System.out.println(map.get("title").get(0));
                        // 因为price不是高亮字段,所以打印出的内容为null
                        System.out.println(map.get("price"));
                }*/
                for (Item item : items) {
                        System.out.println("id: " + item.getId());
                        // 根据item的id获取对应的高亮字段集合:Map,根据字段名称title获取对应的高亮内容集合:List,title只有一条数据,所以获取list集合中的第0条数据
                        System.out.println(highlighting.get(item.getId()).get("title").get(0));
                        System.out.println("price: " + item.getPrice());
                }
        }



传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2