二十四、RestClient操作文档

目录

一、新增文档

1、编写测试代码

二、查询文档

1、编写测试代码

三、删除文档

1、编写测试代码

四、修改文档

1、编写测试代码

五、批量导入文档

批量查询


一、新增文档

1、编写测试代码

java 复制代码
@SpringBootTest
public class HotelDocumentTest {
    private RestHighLevelClient client;
    @Autowired
    private IHotelService iHotelService;

    @Test
    void testInit(){
        System.out.println(client);
    }

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

    @AfterEach
    void tearDown() throws IOException {
        this.client.close();
    }

    @Test
    void testAddDocument() throws IOException {
        Hotel hotel = iHotelService.getById(61083L);
        HotelDoc hotelDoc = new HotelDoc(hotel);
//      准备request对象
        IndexRequest request = new IndexRequest("hotel").id(hotel.getId().toString());
//      准备Json文档
        request.source(JSON.toJSONString(hotelDoc),XContentType.JSON);
//      发送请求
        client.index(request, RequestOptions.DEFAULT);

    }

}

二、查询文档

1、编写测试代码

java 复制代码
    @Test
    void testGetDocument() throws IOException {
//      准备request对象
        GetRequest request = new GetRequest("hotel","61083");
//      接收response
        GetResponse response = client.get(request,RequestOptions.DEFAULT);
//      解析
        String json = response.getSourceAsString();

        HotelDoc hotelDoc = JSON.parseObject(json,HotelDoc.class);
        System.out.println(hotelDoc);
    }

三、删除文档

1、编写测试代码

java 复制代码
    @Test
    void testDeleteDocument() throws IOException {
//      准备request对象
        DeleteRequest request = new DeleteRequest("hotel","61083");
//      发送请求
        client.delete(request,RequestOptions.DEFAULT);
    }

四、修改文档

1、编写测试代码

java 复制代码
    @Test
    void testUpdateDocument() throws IOException {
//      准备request对象
        UpdateRequest request = new UpdateRequest("hotel","61083");
//       准备请求参数
        request.doc(
                "price","952",
                "starName","四钻 "
        );
//      发送请求
        client.update(request,RequestOptions.DEFAULT);
    }

五、批量导入文档

java 复制代码
    void testBulkRequest() throws IOException{
//        批量查询酒店数据
        List<Hotel> hotelList = iHotelService.list();
//        创建Request
        BulkRequest request = new BulkRequest();
//        准备参数
        for (Hotel hotel : hotelList){
//        转换为文档类型HotelDoc
            HotelDoc hotelDoc = new HotelDoc(hotel);
//        创建新增文档的Request对象
            request.add(new IndexRequest("hotel")
                    .id(hotelDoc.getId().toString())
                    .source(JSON.toJSONString(hotelDoc),XContentType.JSON));
        }
//        发送请求
        client.bulk(request,RequestOptions.DEFAULT);
    }
批量查询
相关推荐
编程彩机19 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
青岑CTF19 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
Li emily19 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
小酒窝.19 小时前
【多线程】多线程打印1~100
java·多线程
君爱学习20 小时前
基于SpringBoot的选课调查系统
java
APIshop20 小时前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库
血小板要健康20 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
淼淼76320 小时前
安装jdk1.8
java·开发语言
PfCoder20 小时前
WinForm真入门(23)---PictureBox 控件详细用法
开发语言·windows·c#·winform
Legendary_00820 小时前
Type-C 一拖二快充线:突破单口限制的技术逻辑
c语言·开发语言