全文检索solr(五)Solrj的使用

什么是solrj

solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,如下图:

 

Solrj和图形界面操作的区别就类似于数据库中使用jdbc和mysql客户端的区别一样。

需求

使用solrj调用solr服务实现对索引库的增删改查操作。

环境准备

  1. Solr:4.10.3
  2. Jdk环境:1.7
  3. IDE环境:Eclipse Mars2

 

工程搭建

创建java工程

 

​​​​​​​添加jar

Solrj的包,\solr-4.10.3\dist\目录下

 

solrj依赖包,\solr-4.10.3\dist\solrj-lib

 

Solr服务的依赖包,\solr\example\lib\ext

 

  1. 代码实现

    添加&修改索引

    1. 步骤
  2. 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
  3. 创建SolrInputDocument对象,然后通过它来添加域。
  4. 通过HttpSolrServer对象将SolrInputDocument添加到索引库。
  5. 提交。

 

​​​​​​​代码

说明:根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。

@Test
public void testCreateAndUpdateIndex() throws Exception {
	// 1. 创建HttpSolrServer对象
	// 设置solr服务接口,浏览器客户端地址http://127.0.0.1:8081/solr/#/
	String baseURL = "http://127.0.0.1:8081/solr";
	HttpSolrServer httpSolrServer = new HttpSolrServer(baseURL);

	// 2. 创建SolrInputDocument对象
	SolrInputDocument document = new SolrInputDocument();
	document.addField("id", "c1001");
	document.addField("content ", "Hello world!");

	// 3. 把SolrInputDocument对象添加到索引库中
	httpSolrServer.add(document);

	// 4. 提交
	httpSolrServer.commit();
}

 

 

 

删除索引

代码

抽取HttpSolrServer 的创建代码

private HttpSolrServer httpSolrServer;

// 提取HttpSolrServer创建
@Before
public void init() {
	// 1. 创建HttpSolrServer对象
	// 设置solr服务接口,浏览器客户端地址http://127.0.0.1:8081/solr/#/
	String baseURL = "http://127.0.0.1:8081/solr/";
	this.httpSolrServer = new HttpSolrServer(baseURL);
}

 

查询索引

​​​​​​​简单查询

/**
 * 简单搜索
 * 
 * @throws Exception
 */
@Test
public void testSearchIndex1() throws Exception {
	// 创建搜索对象
	SolrQuery query = new SolrQuery();
	// 设置搜索条件
	query.setQuery("*:*");

	// 发起搜索请求
	QueryResponse response = this.httpSolrServer.query(query);
	// 处理搜索结果
	SolrDocumentList results = response.getResults();

	System.out.println("搜索到的结果总数:" + results.getNumFound());

	// 遍历搜索结果
	for (SolrDocument solrDocument : results) {

	System.out.println("----------------------------------------------------");

		System.out.println("id:" + solrDocument.get("id"));
		System.out.println("content" + solrDocument.get("content"));
	}
}

 

 

Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎 课程特点毕业后接触的第一个中间件就是Solr,在工作中用处广泛,为了便于大家快速掌握该技能,开始录制相关课程,该专栏特点如下:1.采用Solr最新版本视频录制,全网最新课程(Solr8.1于2019年5月16日发布)2.技能点全网最全,会结合工作经验,项目中用到的技能点都会有所涉及,更新章节比较全面3.适用范围广,从零基础到高级架构以及分布式集群都涵盖,适用初级、高级、项目实战等多个层次开发者4.多种维度辅助学习,采用独立solr粉丝群辅助教学,学员问题会及时得到解决,程序员突破圈 打卡制度,督促学员学习关注后再购买、 关注后再购买、 关注后再购买课程能得到什么1.快速学习到最新版本的全文检索技术,从视频、文章、圈子、粉丝交流等快速促进学习2.通过该技术,获得面试进阶指导3.结交人脉(庞大的粉丝群)..End初期学员100人,价格不会太高,也是为了帮助更多的开发者但是个人精力有限,所以限制条件如下1.求知欲强,有想向技术更深一层了解的2.乐于交流,喜欢探讨技术者3.学习惰性者慎入,购买后会督促大家学习,购买不是目的,学习到该技能才是该专栏的主要目的正式进入学习状态了吗,专栏群见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_35670694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值