二十四、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);
    }
批量查询
相关推荐
prince052 小时前
用户积分系统怎么设计
java·大数据·数据库
龙飞054 小时前
Kubernetes 疑难杂症:Pod 始终处于 Terminating 状态的真实原因与安全修复方案
安全·云原生·容器·kubernetes
96774 小时前
理解IOC控制反转和spring容器,@Autowired的参数的作用
java·sql·spring
SY_FC4 小时前
实现一个父组件引入了子组件,跳转到其他页面,其他页面返回回来重新加载子组件函数
java·前端·javascript
啵啵鱼爱吃小猫咪4 小时前
机械臂阻抗控制github项目-mujoco仿真
开发语言·人工智能·python·机器人
似水明俊德4 小时前
02-C#
开发语言·c#
耀耀_很无聊4 小时前
09_Jenkins安装JDK环境
java·运维·jenkins
ノBye~4 小时前
Centos7.6 Docker安装redis(带密码 + 持久化)
java·redis·docker
黑臂麒麟4 小时前
openYuanrong:多语言运行时独立部署以库集成简化 Serverless 架构 & 拓扑感知调度:提升函数运行时性能
java·架构·serverless·openyuanrong
oem1104 小时前
C++中的享元模式实战
开发语言·c++·算法