SolrJ 操作索引文档

这是我在使用solr单机版服务器进行查询

服务器操作截图



java测试代码片段:

(添加索引文档)

public void testSoloJ() throws Exception{		
		//得到SolrServer 通过HttpSolrServer
		SolrServer solrServer = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");
		//创建一个SolrDocument
		SolrInputDocument document = new SolrInputDocument();
		document.addField("id", "test3");
		document.addField("item_title", "手机贴膜");
		document.addField("item_sell_point", "送钢化膜");
		//添加到服务器
		solrServer.add(document);
		//提交
		solrServer.commit();
	}

(删除索引文档)

public void testDeleteDocumentById() throws Exception{
		//创建solrserver对象
		SolrServer server = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");
		//通过id删除document
		server.deleteById("test1");
		//提交
		server.commit();
	}
	
	@Test
	public void testDeleteDocumentByQuery() throws Exception{
		
		//创建solrserver对象
		SolrServer server = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");
		//通过条件删除
		server.deleteByQuery("*:*");
		//提交
		server.commit();
	}


(查询索引文档高亮显示)

public void testQuery() throws Exception{
		
		// 1. 创建solrserver对象
		SolrServer solrServer = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");
		// 2. 创建solrQuery对象
		SolrQuery query = new SolrQuery();
		// 3. 设置查询条件
		query.setQuery("手机");
		// 4. 设置默认查询字段
		query.set("df", "item_keywords");
		// 5. 设置分页条件
		query.setStart(0);
		query.setRows(10);
		// 6. 设置高亮显示
		query.setHighlight(true);
		query.addHighlightField("item_title");
		query.setHighlightSimplePre("<div>");
		query.setHighlightSimplePost("</div");
		// 7. 执行查询,返回查询结果
		QueryResponse queryResponse = solrServer.query(query);
		// 8. 得到结果集
		SolrDocumentList solrDocumentList = queryResponse.getResults();
		// 9. 得到结果总记录数
		long numFound = solrDocumentList.getNumFound();
		System.out.println("总共查询到"+numFound+"条记录");
		// 10. 显示查询结果
		for (SolrDocument solrDocument : solrDocumentList) {
			System.out.println("id: "+solrDocument.getFieldValue("id"));
			// 11. 高亮显示标题
			Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
			List<String> list = highlighting.get(solrDocument.getFieldValue("id")).get("item_title");
			// 12. 如果list不为空则标题中有查询的内容,否则在其他地方有查询的内容
			String title = "";
			if( list!=null && list.size()>0){
				title = list.get(0);
			} else {
				title = (String) solrDocument.getFieldValue("item_title");
			}
			System.out.println("item_title: " + title);
			System.out.println("item_sell_point: "+solrDocument.getFieldValue("item_sell_point"));
			System.out.println("item_price: "+solrDocument.getFieldValue("item_price"));
			System.out.println("item_image: "+solrDocument.getFieldValue("item_image"));
			System.out.println("item_category_name: "+solrDocument.getFieldValue("item_category_name"));
			System.out.println("分割线===================================");
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值