二十四、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);
    }
批量查询
相关推荐
小羊没烦恼!4 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里4 天前
java中的继承和多态的区别
java
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕4 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码5 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖5 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时5 天前
01-06-A-JVM排查实战详解
java·jvm
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
vipxieliang5 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot