ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【ELK技术栈】详解 SpringBoot 集成 ElasticSearch 之项目实战:关于索引的API操作、关于文档的API操作

2021-09-23 21:00:25  阅读:183  来源: 互联网

标签:ELK SpringBoot request System API 文档 println out 2.4


文章目录

1 相应的官方文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、ES 的依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.15.0</version>
</dependency>

2、相关类的配置
在这里插入图片描述

2 项目实战

2.1 添加依赖

在这里插入图片描述
导入后发现,Spring Boot 2.5.4 的默认 ES 依赖的版本是 7.12.1
在这里插入图片描述
而我本地的 ES 版本为 7.14.1
在这里插入图片描述
而官方在兼容性方面已经实现了 ES 版本对客户端版本的向后兼容,因此,依据此说明,我的本地环境在版本上,在理论上是没有问题的。
在这里插入图片描述

2.2 添加配置类

根据官方文档的示例,我们将此配置类注入到项目中
在这里插入图片描述
仿照官方示例:
在这里插入图片描述
依赖中自动配置类的位置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 关于索引的API操作

索引:创建、是否存在、删除

2.3.1 创建索引

@SpringBootTest
class Es01ApplicationTests {

    @Autowired
    @Qualifier("restHighLevelClient")
    private RestHighLevelClient client;

    //1------------测试索引的创建
    @Test
    void testCreateIndex() throws IOException {
        //1 创建索引请求
        CreateIndexRequest request = new CreateIndexRequest("zlc_index");
        //2 客户端执行请求
        CreateIndexResponse createIndexResponse =
                client.indices().create(request, RequestOptions.DEFAULT);

        System.out.println(createIndexResponse);
    }
}

在这里插入图片描述

2.3.2 索引是否存在

//2------------测试索引是否存在
@Test
void testExistIndex() throws IOException {
    GetIndexRequest request = new GetIndexRequest("zlc_index");
    boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
    System.out.println(exists);
}

在这里插入图片描述
在这里插入图片描述

2.3.3 删除索引

//3------------测试删除索引
@Test
void testDeleteIndex() throws IOException {
    DeleteIndexRequest request = new DeleteIndexRequest("zlc_index");
    AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
    System.out.println(delete.isAcknowledged());
}

在这里插入图片描述

2.4 关于文档的API操作

文档:添加、获取、是否存在、更新、删除、批量添加、 条件查询文档

2.4.1 添加文档

//测试添加文档
@Test
void testAddDocument() throws IOException {
    //创建对象
    User user = new User("周龙超", 20);
    //创建请求
    IndexRequest request = new IndexRequest("zlc_index");
    //规则 put /zlc_index/_doc/1
    request.id("1");
    request.timeout(TimeValue.timeValueSeconds(1));
    request.timeout("1s");

    //将数据放入请求
    request.source(JSON.toJSONString(user), XContentType.JSON);

    //客户端发送请求,获取响应结果
    IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);

    System.out.println(indexResponse.toString());
    System.out.println(indexResponse.status());
}

在这里插入图片描述

在这里插入图片描述

2.4.2 文档是否存在

//文档是否存在,判断是否存在 GET /index/_doc/1
@Test
void testIsExists() throws IOException {
    GetRequest getRequest = new GetRequest("zlc_index", "1");
    //不获取返回的 _source 的上下文,提高效率
    getRequest.fetchSourceContext(new FetchSourceContext(false));
    getRequest.storedFields("_none_");

    boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);
    System.out.println(exists);
}

在这里插入图片描述

2.4.3 获取文档信息

//获取文档信息
@Test
void testGetDocument() throws IOException {
    GetRequest getRequest = new GetRequest("zlc_index", "1");
    GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
    System.out.println(getResponse);
    System.out.println(getResponse.getSourceAsString());
}

在这里插入图片描述

2.4.4 更新文档信息

//更新文档信息
@Test
void testUpdateDocument() throws IOException {
    UpdateRequest updateRequest = new UpdateRequest("zlc_index", "1");
    updateRequest.timeout("1s");

    User user = new User("Zhou_LC", 20);
    updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);

    UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);
    System.out.println(updateResponse);
    System.out.println(updateResponse.status());
}

在这里插入图片描述
在这里插入图片描述

2.4.5 删除文档

//删除文档
@Test
void testDeleteDocument() throws IOException {
    DeleteRequest deleteRequest = new DeleteRequest("zlc_index", "1");
    deleteRequest.timeout("1s");

    DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);
    System.out.println(deleteResponse);
    System.out.println(deleteResponse.status());
}

在这里插入图片描述
在这里插入图片描述

2.4.6 批量添加文档

在这里插入图片描述

2.4.7 条件查询文档

在这里插入图片描述

标签:ELK,SpringBoot,request,System,API,文档,println,out,2.4
来源: https://blog.csdn.net/m0_46360532/article/details/120433170

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有