Solrj连接Solr服务

  Solr服务搭建好之后,需要在代码里面连接上Solr服务。和Jedis类似,Java操作Solr服务也需要一个助攻的Jar包,就是solrj。

 

  在Maven工程的pom.xml文件中加入solr客户端的依赖,将solr客户端的jar包加入工程的依赖中:

 

<dependency>
	<groupId>org.apache.solr</groupId>
	<artifactId>solr-solrj</artifactId>
</dependency>

  

 

  创建Test类,实现测试代码。连接Solr服务时需要这么几个步骤,首先创建一个连接,然后创建一个文档对象,接着可以对文档进行操作,最后进行提交。

 

添加文档:

 

@Test
public void addDocument() throws Exception {
	// 创建一个连接
	SolrServer solrServer = new HttpSolrServer("http://192.168.243.3:8080/solr");
	// 创建一个文档对象
	SolrInputDocument document = new SolrInputDocument();
	document.addField("id", "001");
	document.addField("name", "fy");
	document.addField("sex", "女");
	// 把文档对象写入索引库
	solrServer.add(document);
	// 提交
	solrServer.commit();
}

删除文档:

 

 

@Test
public void deleteDocument() throws Exception {
	// 创建一个连接
	SolrServer solrServer = new HttpSolrServer(
			"http://192.168.243.3:8080/solr");
	//删除操作
	//根据主键去删除
	// solrServer.deleteById("001");
	//删除所有
	solrServer.deleteByQuery("*:*");
	solrServer.commit();
}

查询操作:

 

 

@Test
public void queryDocument() throws Exception {
	// 创建一个连接
	SolrServer solrServer = new HttpSolrServer(
			"http://192.168.243.3:8080/solr");
	SolrQuery query = new SolrQuery();
	// 设置查询条件
	query.setQuery("fy");
	// 设置默认搜素域
	query.set("df", "name");
	// 根据查询条件查询索引库
	QueryResponse queryResponse = solrServer.query(query);
	// 取查询结果
	SolrDocumentList solrDocumentList = queryResponse.getResults();
	// 打印查询结果的数量
	System.out.println(solrDocumentList.getNumFound());
	// 打印查出的第一条数据的id
	System.out.println(solrDocumentList.get(0).get("id"));
}

  

 

  查询时,可以在query中放入查询的条件,查询所要搜索的域,按照分页查询,需要是否需要高亮显示等等,都是可以一一设置的,例如:

 

// 设置分页
query.setStart((page - 1) * rows);
query.setRows(rows);
// 设置默认搜素域
query.set("df", "item_keywords");
// 设置高亮显示
query.setHighlight(true);
//添加要高亮显示的域
query.addHighlightField("item_tittle");
//设置高亮显示的样式
query.setHighlightSimplePre("<em style=\"color:red\">");
query.setHighlightSimplePost("</em>");

SolrQuery的方法,可以参考SolrQuery的API,它包含了很多方法来实现各种操作。

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值