当前位置:   article > 正文

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

restclient java

目录

一、案例分析

二、Java代码中操作文档

 2.1  初始化JavaRestClient

 2.2  添加数据到索引库

 2.3  根据id查询数据

 2.4  根据id修改数据

 2.4  删除操作

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


一、案例分析

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

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

二、Java代码中操作文档

 2.1  初始化JavaRestClient

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

  1. public class ElasticsearchDocumentTest {
  2. //客户端
  3. private RestHighLevelclient client;
  4. @BeforeEach
  5. void setUp(){
  6. client = new RestHighLevelclient(RestClient.builder(HttpHost.create("http://192.168.15.101:9200")
  7. ));
  8. }
  9. @AfterEach
  10. void tearDown() throws IOException {
  11. client.close();
  12. }
  13. }
 2.2  添加数据到索引库

示例代码

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

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

(1)创建文档对应实体

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

 2.3  根据id查询数据

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

  1. @Test
  2. void testGetDocumentById() throws IOException {
  3. // 1.创建request对象
  4. GetRequest request = new GetRequest("indexName""1");
  5. // 2.发送请求,得到结果
  6. GetResponse response = client.get(request, RequestOptions.DEFAULT);
  7. // 3.解析结果
  8. String json = response.getSourceAsString();
  9. System.out.println(json);
  10. }

编写代码

 2.4  根据id修改数据

修改文档数据有两种方式

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

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

  1. @Test
  2. void testUpdateDocumentById() throws IOException {
  3. // 1.创建request对象
  4. UpdateRequest request = new UpdateRequest("indexName""1");
  5. //2.准备参数,每2个参数为一对 key value
  6. request.doc(
  7. "age"18,
  8. "name","Rose"
  9. );
  10. //3更新文档
  11. client.update(request, RequestOptions.DEFAULT);
  12. }

编写代码

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

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

  • 初始化RestHighLevelClient
  • 创建XxxRequest。XXX是Index、Get、Update、Delete
  • 准备参数 (Index和Update时需要)
  • 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete
  • 解析结果(Get时需要)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/565895
推荐阅读
相关标签
  

闽ICP备14008679号