当前位置: 首页 > article >正文

elasticsearch(RestHighLevelClient API操作)(黑马)

操作全是换汤不换药,创建一个request,然后使用client发送就可以了

一、增加索引库数据

    @Test
    void testAddDocument() throws IOException {
        //从数据库查出数据
        Writer writer = writerService.getById(199);
        //将查出来的数据处理成json字符串
        String json = JSON.toJSONString(writer);

        // 1.准备Request
        IndexRequest request = new IndexRequest("writer").id(String.valueOf(writer.getId()));
        // 2.准备请求参数DSL,其实就是文档的JSON字符串
        request.source(json, XContentType.JSON);
        // 3.发送请求
        client.index(request, RequestOptions.DEFAULT);
    }

二、查询索引库顺序

    @Test
    void testGetDocumentById() throws IOException {
        // 1.准备Request      // GET /hotel/_doc/{id}
        GetRequest request = new GetRequest("writer", "199");
        // 2.发送请求
        GetResponse response = client.get(request, RequestOptions.DEFAULT);
        // 3.解析响应结果
        String json = response.getSourceAsString();

        Writer writer = JSON.parseObject(json, Writer.class);
        System.out.println("writerDoc = " + writer);
    }

三、删除索引库数据

@Test
    void testDeleteDocumentById() throws IOException {
        // 1.准备Request      // DELETE /hotel/_doc/{id}
        DeleteRequest request = new DeleteRequest("hotel", "61083");
        // 2.发送请求
        client.delete(request, RequestOptions.DEFAULT);
    }

四、修改索引库数据

@Test
    void testUpdateById() throws IOException {
        // 1.准备Request
        UpdateRequest request = new UpdateRequest("hotel", "61083");
        // 2.准备参数
        request.doc(
                "price", "870"
        );
        // 3.发送请求
        client.update(request, RequestOptions.DEFAULT);
    }

五、批量导入数据

@Test
    void testBulkRequest() throws IOException {
        List<Writer> list = writerService.list();
        BulkRequest request = new BulkRequest();
        for (Writer writer : list) {
            HotelDoc hotelDoc = new HotelDoc(hotel);
            String json = JSON.toJSONString(writer);
            request.add(new IndexRequest("writer").id(String.valueOf(writer.getId())).source(json, XContentType.JSON));
        }

        client.bulk(request, RequestOptions.DEFAULT);
    }


http://www.kler.cn/a/272215.html

相关文章:

  • 【附源码】108个Python实战项目,练完能力飙升
  • 编译chromium笔记
  • vif-方差膨胀因子计算
  • web前端1--基础
  • 数据结构学习记录-队列
  • 大模型 | AI驱动的数据分析:利用自然语言实现数据查询到可视化呈现
  • 从零自制docker-4-【PID Namespace MOUNT Namespace】
  • 深入了解Android垃圾回收机制
  • odoo17开发教程(6):用户界面UI的交互-创建Action
  • ffmpeg 切割音频文件,各种格式(wav, flac, mp3, m4a等)
  • lua gc垃圾回收知识记录
  • 如何在MATLAB中处理图像和视频?
  • AJAX-XMLHttpRequest
  • Pytorch NLP入门3:用嵌入表示单词
  • 接口测试及接口测试工具【Postman】相关的面试题
  • 微信小程序Skyline模式自定义tab组件胶囊与原生胶囊平齐,安卓和ios均自适应
  • 类似web版Navicat mysql客户端==phpMyAdmin源码启动
  • 使用Python构建RESTful API的最佳实践【第137篇—RESTful API】
  • llama笔记:官方示例解析 example_chat_completion.py
  • Mysql数据库的多实例部署
  • (十七)【Jmeter】取样器(Sampler)之JSR223取样器
  • 基于STM32的智能衣柜系统设计
  • 访问者模式(Visitor Pattern)
  • Apache-Doris基础概念
  • 什么数据需要存在Redis里?缓存的缺点?怎样进行数据同步?
  • 基于Python的股票市场分析:趋势预测与策略制定