Solr快速入门第七讲——使用SolrJ管理索引库

本文介绍了SolrJ作为Solr服务的Java客户端,如何进行索引库的管理,包括添加、删除、更新文档以及查询操作。详细讲解了每个步骤并提供了相应的代码示例。
摘要由CSDN通过智能技术生成

什么是SolrJ?

SolrJ是访问Solr服务的Java客户端,提供索引(这里指的就是创建索引、更新索引以及删除索引)和搜索(这里指的是查询索引)的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图所示。
在这里插入图片描述

使用SolrJ管理索引库

添加文档

初学者不妨思考一下添加文档这一操作的实现步骤,你尽管想,想出来算我输!我还是直接老老实实把实现步骤写出来吧!

  • 第一步:创建一个普通的Java工程,例如SolrJ。
    在这里插入图片描述
  • 第二步:向Java工程中导入jar包。你不仅要问,应该导入哪些jar包呢?首先导入SolrJ核心jar包(即solr-solrj-8.4.0.jar)和该核心jar包所依赖的那些jar包。 在这里插入图片描述
    除此之外,还应导入一些有关日志的jar包,它们位于solr-8.4.0\server\lib\ext目录中。在这里插入图片描述
    在导入以上这些jar包的过程中,如果有重复的替换就行了。
  • 第三步:和Solr服务器建立连接。由于咱们搭建的是单机版的Solr服务器,所以使用HttpSolrClient对象建立连接即可。
  • 第四步:创建一个SolrInputDocument对象,然后添加若干域。
  • 第五步:将SolrInputDocument对象添加到索引库中去,然后提交(手动提交)即可。
  • 第六步:断开与Solr服务器的连接。

看你能不能对应着以上的实现步骤,将代码给整出来。整不出来也没关系,下面我会直接给出实现代码。

package com.meimeixia.solrj;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;

/**
 * 使用SolrJ管理索引库
 * 添加文档
 * 删除文档
 * 修改文档
 * 查询文档
 * @author liayun
 *
 */
public class SolrJManager {
   

	// 添加文档
	@Test
	public void testAdd() throws Exception {
   
		String baseURL = "http://localhost:8080/solr/collection1"; // Solr服务器的地址,特别指定核1
		// String baseURL = "http://localhost:8080/solr/collection2"; // Solr服务器的地址,特别指定核2
		
		// 和单机版Solr服务器建立连接
		SolrClient solrClient = new HttpSolrClient.Builder(baseURL)
												  .withConnectionTimeout(10000)
												  .withSocketTimeout(60000)
												  .build(); // 至此,终于连上了Solr服务器
		
		// 创建一个文档对象
		SolrInputDocument doc = new SolrInputDocument();
		// 向文档中添加域
		/* 
		 * setField方法中的两个参数的说明如下:
		 * 		第一个参数:域的名称,域的名称必须是在managed-schema配置文件中定义好的,也就是说这个域必须存在
		 * 		第二个参数:域的值
		 */
		doc.setField("id", "haha");
		doc.setField("name", "范冰冰");
		
		
		// 把文档对象添加到索引库中
		solrClient.add(doc);
		solrClient.commit(); // 手动提交,当然了,也可以自动提交
		// 断开与Solr服务器的连接
		solrClient.close();
	}
}

删除文档

根据id删除

要想根据id删除文档,只须在以上SolrJManager类中添加一个如下方法即可。

// 删除文档(根据id删除)
@Test
public void testDeleteDocumentById()</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李阿昀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值