A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是楠楠 黑马粉丝团   /  2019-4-25 15:00  /  776 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

【郑州校区】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());
		}
	}

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马