java中如何使用elasticsearch—RestClient操作文档(CRUD)

目录

一、案例分析

二、Java代码中操作文档

[2.1 初始化JavaRestClient](#2.1 初始化JavaRestClient)

[2.2 添加数据到索引库](#2.2 添加数据到索引库)

[2.3 根据id查询数据](#2.3 根据id查询数据)

[2.4 根据id修改数据](#2.4 根据id修改数据)

[2.4 删除操作](#2.4 删除操作)

三、java代码对文档进行操作的基本步骤


一、案例分析

去数据库查询酒店数据,导入到hotel索引库,实现酒店数据的CRUD基本步骤如下

  1. 初始化JavaRestClient
  2. 利用JavaRestClient新增酒店数据
  3. 利用JavaRestClient根据id查询酒店数据
  4. 利用javaRestClient删除酒店数据5.利用JavaRestClient修改酒店数据

二、Java代码中操作文档

2.1 初始化JavaRestClient

新建一个测试类,实现文档相关操作,并且完成JavaRestClient的初始化

java 复制代码
public class ElasticsearchDocumentTest {
    //客户端
    private RestHighLevelclient client;
    


    @BeforeEach
    void setUp(){
        client = new RestHighLevelclient(RestClient.builder(HttpHost.create("http://192.168.15.101:9200")
        ));
    }

    @AfterEach
    void tearDown() throws IOException {
        client.close();
    }
}
2.2 添加数据到索引库

示例代码

java 复制代码
@Test
void testIndexDocument() throws IException {
    // 1.创建request对象
    IndexRequest request = new IndexRequest("indexName").id("1");
    // 2.准备JSON文档
    request.source("{\"namel": "Jack\","agel": 21}",XContentType.JSON);
    // 3.发送请求
    client.index(request, RequestOptions.DEFAULT);
}

先查询mysql数据,然后给这条数据创建倒排索引,完成mysql转换为索引库的数据添加:

(1)创建文档对应实体

(2)根据id查询数据库数据,并转换

2.3 根据id查询数据

根据id查询到的文档数据是json,需要反序列化为java对象

java 复制代码
@Test
void testGetDocumentById() throws IOException {
    // 1.创建request对象
    GetRequest request = new GetRequest("indexName","1");
    // 2.发送请求,得到结果
    GetResponse response = client.get(request, RequestOptions.DEFAULT);
    // 3.解析结果
    String json = response.getSourceAsString();

    System.out.println(json);
}

编写代码

2.4 根据id修改数据

修改文档数据有两种方式

方式一(全量更新):再次写入id一样的文档,就会删除旧文档,添加新文档

方式二(局部更新):只更新部分字段

java 复制代码
@Test
void testUpdateDocumentById() throws IOException {
    // 1.创建request对象
    UpdateRequest request = new UpdateRequest("indexName","1");
    //2.准备参数,每2个参数为一对 key value
    request.doc(
        "age",18,
        "name","Rose"
    );
    //3更新文档
    client.update(request, RequestOptions.DEFAULT);
}

编写代码

2.4 删除操作
java 复制代码
@Test
void testDeleteDocument() {
    // 1.准备Request
    DeleteRequest request = new DeleteRequest( index: "hotel", id: "61083");
    // 2.发送请求
    client.deletelrequest,RequestOptions.DEFAULT);
}

三、java代码对文档进行操作的基本步骤

  • 初始化RestHighLevelClient
  • 创建XxxRequest。XXX是Index、Get、Update、Delete
  • 准备参数 (Index和Update时需要)
  • 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete
  • 解析结果(Get时需要)
相关推荐
Coder个人博客2 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
侠客行03173 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪3 小时前
深入浅出LangChain4J
java·langchain·llm
灰子学技术5 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
老毛肚5 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎5 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
二十雨辰5 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码5 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚5 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂5 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言