Elastic stack技术栈学习— springboot集成ES API详解

Posted 玛丽莲茼蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastic stack技术栈学习— springboot集成ES API详解相关的知识,希望对你有一定的参考价值。

在test里测试一下各个API。

打开es,也运行es-head,方便观察。

一、关于索引的API详解

这里的client对ES发出请求,就相当于我们的kibana

1.1 声明客户端

@SpringBootTest
class SpringEsApiApplicationTests 
	@Autowired
	@Qualifier("restHighLevelClient")
	private RestHighLevelClient client;  //加上@@Qualifier,就可以用client去替换restHighLevelClient
										 // client就相当于kibana

	@Test
	void contextLoads() 
	

1.2 创建索引

 官方说明:Create Index API | Java REST Client [7.17] | ElasticCreate Index API | Java REST Client [7.15] | ElasticCreate Index API | Java REST Client [7.17] | Elastic

PS:看文档的时候注意选择合适的client版本,我这里看的就是7.15版本的 

主要就是两步:

(1)定义 创建索引请求(CreateIndexRequest)

(2)client发送请求,返回值是响应的对象

//测试 创建索引 Request
	@Test
	void testCreateIndex() throws IOException 
		//1.定义 创建索引请求(CreateIndexRequest)
		CreateIndexRequest request = new CreateIndexRequest("test2");
		//2.client发送请求,获得响应
		CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

		System.out.println(response);
	

运行。 

通过命令行的返回值可以看到返回了创建索引的response:

去head中查看,创建成功。

1.3 获取文档 / 判断文档是否存在 

官方:Index Exists API | Java REST Client [7.15] | Elastic

	//测试 获取索引 Request
	@Test
	void testGetIndex() throws IOException 
		//1.定义 获取索引请求
		GetIndexRequest request = new GetIndexRequest("test2");
		//2.client发送请求,返回布尔值
		boolean exists = client.indices().exists(request,RequestOptions.DEFAULT);

		System.out.println(exists);
	

 运行。

 1.4 删除索引

 官方文档:Delete Index API | Java REST Client [7.15] | Elastic

//测试 删除索引
	@Test
	void testDeleteIndex() throws IOException 
		//1.定义 删除索引请求
		DeleteIndexRequest request = new DeleteIndexRequest("test2");
		//2.client发送请求,获得响应
		AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT);

		System.out.println(response.isAcknowledged()); //响应的状态为true就代表成功删除
	

运行单元测试。 

 命令行显示删除成功,再来head看一下。

二、关于文档的API详解

便于测试文档,我们先新建一个索引User。

1.1 添加文档

(1)在如下图位置中新建一个pojo文件夹,新建一个User类,其对象就相当于我们的文档。

(2)因为对es发请求需要用json的格式,所以我们引入一个fastjson依赖包。

在远程仓库中搜索(中央仓库没搜到,也可能是我不会搜):https://mvnrepository.com/search?q=fastjson

使用这个阿里巴巴提供的fastjson。

 

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.79</version>
</dependency>

出现找不到依赖的错误 

 解决:https://blog.csdn.net/qq_44886213/article/details/123461522

更新中。。。

以上是关于Elastic stack技术栈学习— springboot集成ES API详解的主要内容,如果未能解决你的问题,请参考以下文章

Elastic stack技术栈学习— springboot集成ES API详解

Elastic stack 技术栈学习—— Linux系统下kibana的简单使用

elastic stack技术栈学习—— 安装elasticsearch IK分词器(一个插件)

Elastic stack 技术栈学习—— kibana中索引的基本操作(创建删除更新查看)以及关于文档的基本操作

干货 | Elastic Stack 技术栈应用于日志归集深度复盘

Elastic (ELK)Stack 实战之 Dubbo 全链路监控