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

【Java】RestClient的使用

RestClient的使用

先导入Maven坐标,要和elasticsearch和kibana的版本保持一致

        <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency>

添加一个Index索引

    void createHotelIndex() throws IOException {//创建Request对象CreateIndexRequest request = new CreateIndexRequest("hotel");//准备请求参数,DSL语句request.source(MAPPING_TEMPLATE, XContentType.JSON);//发送请求client.indices().create(request, RequestOptions.DEFAULT);}

删除一个index索引

    void DeleteHotelIndex() throws IOException {//创建对象DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("hotel");//发送请求client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);}

判断一个index索引是否存在

    void ExitHotel() throws IOException {GetIndexRequest request=new GetIndexRequest("hotel");boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);System.err.println(exists?"索引已经存在":"索引不存在");}

初始化

几乎所有的操作都依赖于RestHighLevelClient这个对象

private RestHighLevelClient client;void setRestHighLevelClient(){this.client=new RestHighLevelClient(RestClient.builder(HttpHost.create("http://ip:9200")));}//销毁client@AfterEachvoid tearDown() throws IOException {this.client.close();}

添加一个doc文档

    void testAddDocument() throws IOException {Hotel hotel = hotelService.getById(61083L);//转换为文档类型HotelDoc hotelDoc=new HotelDoc(hotel);//准备request对象IndexRequest request=new IndexRequest("hotel").id(hotelDoc.getId().toString());//准备JSON文档request.source(JSON.toJSONString(hotelDoc), XContentType.JSON);client.index(request, RequestOptions.DEFAULT);}

获取一个doc文档

    void testGetDocumentById() throws IOException {//准备请求GetRequest request=new GetRequest("hotel","61083");//发送请求,得到响应GetResponse response = client.get(request, RequestOptions.DEFAULT);//拿到数据String json = response.getSourceAsString();HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);System.out.println(hotelDoc);}

局部更新文档

    void testUpdateDocument() throws IOException {UpdateRequest request=new UpdateRequest("hotel","61083");//准备发送请求request.doc("price","123456");//发送请求client.update(request,RequestOptions.DEFAULT);}

删除文档

    void DeleteDocument() throws IOException {DeleteRequest request=new DeleteRequest("hotel","61083");client.delete(request,RequestOptions.DEFAULT);}

批量添加doc文档

    void BulkRequest() throws IOException {List<Hotel> hotels = hotelService.list();BulkRequest request=new BulkRequest();for (Hotel hotel:hotels){HotelDoc hotelDoc=new HotelDoc(hotel);request.add(new IndexRequest("hotel").id(hotelDoc.getId().toString()).source(JSON.toJSONString(hotelDoc),XContentType.JSON));}//发送请求client.bulk(request,RequestOptions.DEFAULT);}

相关文章:

  • Stable Diffusion 绘画入门教程(webui)-ControlNet(IP2P)
  • Mybatis总结二
  • JavaScript从零写网站《一瞬》开发日志20240223
  • 10.CSS3的calc函数
  • 【深度学习】LoRA: Low-Rank Adaptation of Large Language Models,论文解读
  • 算法:位运算问题和概率问题
  • Flutter插件开发指南01: 通道Channel的编写与实现
  • OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(一)
  • VantUI组件的安装和使用
  • 2024022301-关系代数
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • 第五章、策略模式
  • win10开机黑屏,只有鼠标,解决方案
  • 【鸿蒙 HarmonyOS 4.0】状态管理
  • 【更换yarn的位置】解决yarn和nodejs不在同一盘下产生的某些命令应用失败问题
  • 【Amaple教程】5. 插件
  • Android优雅地处理按钮重复点击
  • ES6系列(二)变量的解构赋值
  • JS基础之数据类型、对象、原型、原型链、继承
  • LeetCode18.四数之和 JavaScript
  • Meteor的表单提交:Form
  • Odoo domain写法及运用
  • SpiderData 2019年2月25日 DApp数据排行榜
  • spring + angular 实现导出excel
  • vue 配置sass、scss全局变量
  • 半理解系列--Promise的进化史
  • 力扣(LeetCode)357
  • 力扣(LeetCode)965
  • 前嗅ForeSpider中数据浏览界面介绍
  • 事件委托的小应用
  • HanLP分词命名实体提取详解
  • ​Python 3 新特性:类型注解
  • ![CDATA[ ]] 是什么东东
  • (02)Hive SQL编译成MapReduce任务的过程
  • (2)nginx 安装、启停
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (十) 初识 Docker file
  • (四)Controller接口控制器详解(三)
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core WebAPI中封装Swagger配置
  • .net core 依赖注入的基本用发
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net中应用SQL缓存(实例使用)
  • .考试倒计时43天!来提分啦!
  • ??myeclipse+tomcat
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [BUUCTF 2018]Online Tool(特详解)
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [CSS3备忘] transform animation 等
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能