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中索引的基本操作(创建删除更新查看)以及关于文档的基本操作