二十四、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);
    }
批量查询
相关推荐
写代码的小阿帆20 小时前
Java体系总结——从基础语法到微服务
java·微服务·学习方法
CUMT_DJ21 小时前
matlab计算算法的运行时间
开发语言·算法·matlab
SUPER52661 天前
FastApi项目启动失败 got an unexpected keyword argument ‘loop_factory‘
java·服务器·前端
咕噜咕噜啦啦1 天前
Eclipse集成开发环境的使用
java·ide·eclipse
Overboom1 天前
[C++] --- 常用设计模式
开发语言·c++·设计模式
Univin1 天前
C++(10.4)
开发语言·数据结构·c++
KyollBM1 天前
每日羊题 (质数筛 + 数学 | 构造 + 位运算)
开发语言·c++·算法
光军oi1 天前
全栈开发杂谈————关于websocket若干问题的大讨论
java·websocket·apache
weixin_419658311 天前
Spring 的统一功能
java·后端·spring
Paul_09201 天前
golang面经——map模块和sync.Map模块
开发语言