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

Spring集成ES

RestAPI

ES官方提供的java语言客户端用以组装DSL语句,再通过http请求发送给ES

RestClient初始化

引入依赖

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
初始化RestHighLevelClient
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.150.101:9200")
));

RestClient操作索引

创建索引

创建一个CreateIndexRequest对象

在对象中添加JSON格式的Mapping映射参数

client.indices()方法会返回封装了所有索引库操作的一个客户端

这里我们使用

client.indices().create(request, RequestOptions.DEFAULT);

删除索引

创建一个DeleteIndexRequest对象

调用delete方法

client.indices().delete(request, RequestOptions.DEFAULT);

查询索引是否存在

创建一个GetIndexRequest对象

调用exist方法

client.indices().exists(request, RequestOptions.DEFAULT);

RestClient操作文档

查询文档

创建一个GetRequest对象

调用get方法

 GetResponse response = client.get(request, RequestOptions.DEFAULT);String json = response.getSourceAsString();

删除文档

创建一个DeleteRequest对象

调用delete方法

client.delete(request, RequestOptions.DEFAULT);

修改文档

如果id存在就修改

如果id不存在就新增

创建一个 UpdateRequest对象

调用update方法

client.update(request, RequestOptions.DEFAULT);

批量导入文档

创建BulkRequest对象,可以添加以下请求

  • IndexRequest,也就是新增
  • UpdateRequest,也就是修改
  • DeleteRequest,也就是删除

在对象中添加多个不同请求,最后调用bulk方法

request.add(new IndexRequest("items").id("1").source("json doc1", XContentType.JSON));request.add(new IndexRequest("items").id("2").source("json doc2", XContentType.JSON));
client.bulk(request, RequestOptions.DEFAULT);

相关文章:

  • tpcc压力测试mysql和 ab压力测试云服务器
  • ESP32和mDNS学习
  • Vue3可媲美Element Plus Tree组件开发之append节点
  • 高级及架构师高频面试题-基础型
  • Python --NumPy库基础方法(2)
  • 【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法
  • Python | Leetcode Python题解之第278题第一个错误的版本
  • 系统架构设计师教程 第4章 信息安全技术基础知识-4.5 密钥管理技术4.6 访问控制及数字签名技术-解读
  • 某量JS逆向
  • 【时时三省】(C语言基础)循环语句while
  • 大模型算法面试题(十二)
  • scp 服务器复制命令
  • redis:清除缓存的最简单命令示例
  • 学习记录——day17 数据结构 队列 链式队列
  • C#中GridControl的数据源双向绑定
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • DataBase in Android
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Redis学习笔记 - pipline(流水线、管道)
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 一些关于Rust在2019年的思考
  • 与 ConTeXt MkIV 官方文档的接驳
  • 责任链模式的两种实现
  • mysql面试题分组并合并列
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​2020 年大前端技术趋势解读
  • #define
  • $ git push -u origin master 推送到远程库出错
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C++17) optional的使用
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Java数据结构)ArrayList
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (十三)Maven插件解析运行机制
  • (五)IO流之ByteArrayInput/OutputStream
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ****Linux下Mysql的安装和配置
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core Swagger 过滤部分Api
  • .NET Core 发展历程和版本迭代
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .net 中viewstate的原理和使用
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • ?.的用法
  • ??myeclipse+tomcat
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ C++ ] STL---stack与queue