Elasticsearch实现增删改查
调用elasticsearch通常使用restful风格请求,这里记录一些常用的Java API和Postman Url
Java API调用Es
1. 查询总文档数
@Testvoid getAllCount() {
// RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.3",9200,"http")));RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.1",9200,"http")));SearchRequest searchRequest=new SearchRequest();SearchSourceBuilder searchSourceBuilder=new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchAllQuery());searchRequest.indices("_all");searchRequest.source(searchSourceBuilder);try {SearchResponse searchResponse=client.search(searchRequest, RequestOptions.DEFAULT);long count=searchResponse.getHits().getTotalHits().value;System.out.println("192.168.32.3的文档总数量为: "+count);} catch (IOException e) {e.printStackTrace();}}
2.批量插入100w数据
@Testpublic void setESBatchData() throws IOException {RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.2",9200,"http")));BulkRequest request=new BulkRequest();request.timeout("10m");long startTime = System.currentTimeMillis();for (int i = 1; i < 1000000; i++) {
// Map<String, String> jsonMap = new HashMap<>();String name="test"+i;int age=i;
// jsonMap.put("name", "test"+i);
// jsonMap.put("age", String.valueOf(i));
// String jsonString = formatAsJSON(jsonMap);IndexRequest indexRequest=new IndexRequest("my_index").source("name",name,"age",age);request.add(indexRequest);if(i%10000==0){BulkResponse response=client.bulk(request,RequestOptions.DEFAULT);request=new BulkRequest();if (response.hasFailures()) {// 处理失败的文档System.out.println("第"+i/10000+"次批量插入失败");} else {System.out.println("第"+i/10000+"次批量插入成功,已插入"+i/10000+"w条");// 所有文档都已成功插入}}}long endTime = System.currentTimeMillis();double timeDifference = (endTime - startTime)/1000;System.out.println("两次系统时间差:" + timeDifference + " 秒");
// RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
// builder.setHttpAsyncResponseConsumerFactory(new HttpAsyncResponseConsumerFactory.HeapBufferedResponseConsumerFactory(500 * 1024 * 1024));
// RequestConfig config=RequestConfig.custom().setConnectTimeout(60000).setSocketTimeout(600000).build();
// RequestOptions options=builder.setRequestConfig(config).build();}
3.关闭指定索引
@Testpublic void closeESIndex() throws IOException {//创建es客户端,建立连接RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.1",9200,"http")));
// String indexName=".ds-ilm-history-5-2023.06.29-000001";String indexName=".ds-.logs-deprecation.elasticsearch-default-2023.06.29-000001";
// String indexName="my_index";//根据操作类型创建请求CloseIndexRequest request=new CloseIndexRequest(indexName);//执行请求,返回结果AcknowledgedResponse response=client.indices().close(request,RequestOptions.DEFAULT);if (response.isAcknowledged()){System.out.println("索引关闭成功");}else {System.out.println("索引关闭失败");}//释放连接资源client.close();}
4.添加文档
@Testpublic void addES() throws IOException {RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.3",9200,"http")));String jsonDocument = "{ \"name\": \"test14\", \"age\": \"140\" }";IndexRequest request=new IndexRequest("my_index").id("14").source(jsonDocument, XContentType.JSON);IndexResponse response=client.index(request,RequestOptions.DEFAULT);if(response.getResult()== IndexResponse.Result.CREATED){System.out.println("文档创建成功");}else if(response.getResult()==IndexResponse.Result.UPDATED){System.out.println("文档更新成功");}client.close();}
5.修改文档
@Testpublic void updateES() throws IOException {RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.3",9200,"http")));UpdateRequest request=new UpdateRequest("my_index","_doc","14");Map<String,String> updateInfo=new HashMap<>();request.doc("name","test14_update");UpdateResponse response=client.update(request,RequestOptions.DEFAULT);if(response.getResult()== DocWriteResponse.Result.UPDATED){System.out.println("修改文档成功");}client.close();}
6.删除文档
@Testpublic void deleteES() throws IOException {RestHighLevelClient client=new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.32.3",9200,"http")));DeleteRequest request=new DeleteRequest("my_index","14");DeleteResponse response=client.delete(request,RequestOptions.DEFAULT);if(response.getResult()== DocWriteResponse.Result.DELETED){System.out.println("删除文档成功");}}
Postman请求(DSL)
1.查询全量文档
POST http://192.168.32.2:9201/_search?pretty
{"size": 1000,"query": {"match_all": {}}
}
2.删除全部文档(保留索引)
POST http://192.168.32.2:9201/_all/_delete_by_query
{"query": {"match_all": {}}
}
3.新增文档
PUT http://192.168.32.2:9201/my_index/_doc/1
{"name": "test1","age": 1
}
4.查看x-pack许可证信息
GET http://192.168.32.2:9201/_xpack?pretty
5.查看集群节点
GET http://192.168.32.2:9200/_cat/nodes?v
6.查看节点信息
GET http://192.168.32.1:9201
7.查询文档总数
GET http://192.168.32.2:9201/_search?pretty
{"size": 0,"aggs": {"total_documents": {"value_count": {"field": "_id"}}}
}
8.创建索引
PUT http://192.168.32.2:9200/test_index
{"mappings": {"properties": {"name": {"type": "text"},"age": {"type": "long"}}}
}
9.删除索引(包括数据)
DELETE http://192.168.32.2:9201/my_index
10.查询集群索引
GET http://192.168.32.2:9201/_cat/indices?v
11.查看指定索引结构
GET http://192.168.32.2:9200/my_index/_mapping
12.开启指定索引
POST http://192.168.32.2:9201/my_index/_open
13.关闭指定索引
POST http://192.168.32.2:9201/my_index/_close
14.定义远程集群
POST http://192.168.32.2:9201/my_index/_close
15.查看远程集群
GET http://192.168.32.2:9201/_remote/info
16.删除远程集群
PUT http://192.168.32.2:9201/_cluster/settings
{"persistent": {"cluster": {"remote": {"es-source": {"seeds": null }}}}
}
17.开启CCR(指定索引)
PUT http://192.168.32.2:9201/my_index/_ccr/follow
{"remote_cluster": "source","leader_index": "my_index"
}
18.暂停CCR
POST http://192.168.32.2:9201/my_index/_ccr/pause_follow
19.删除CCR
POST http://192.168.32.2:9201/my_index/_ccr/unfollow
删除索引也会自动删除CCR
20.查看CCR信息
POST http://192.168.32.2:9201/my_index/_ccr/info
21.自动跟随增量同步索引(auto follow)
PUT http://192.168.32.2:9201/_ccr/auto_follow/beats
{"remote_cluster": "source","leader_index_patterns": ["*"]
}
相关文章:
Elasticsearch实现增删改查
调用elasticsearch通常使用restful风格请求,这里记录一些常用的Java API和Postman Url Java API调用Es 1. 查询总文档数 Testvoid getAllCount() { // RestHighLevelClient clientnew RestHighLevelClient(RestClient.builder(new HttpHost("192.168…...
Rust 学习笔记(卷二)
文章目录 Rust 学习笔记(卷二)八、工程1. package 和 cratepackage 总览包根(crate root) 2. 模块初识模块单个源文件中的嵌套模块使用具有层级结构的源文件构造嵌套模块 3. 文档4. 使用第三方包5. 打包自己的包 九、标准库十、多…...
android amazon 支付接入
流程: 申请 Amazon 开发者帐号 ---> 在 amazon 控制台添加应用 ---> 添加应用内商品(消费类商品,授权类商品,订阅类商品)---> 导出 JSON 文件 --->集成 Amazon 支付 ---> 将导出的 JSON 文件 copy 到 …...

Vue2-快速搭建pc端后台管理系统
一.推荐二次开发框架 vue-element-admin Star(84k)vue-antd-admin Star(3.5k) 二.vue-element-admin 官网链接:https://panjiachen.github.io/vue-element-admin-site/zh/ 我这里搭建的是基础模版vue-admin-template(推荐) # 克隆项目 git clone https://github.com/PanJi…...

【产品文档】团队介绍PPT模板
今天和大家免费分享团队介绍的PPT模板。团队介绍是向他人展示团队的实力、专业性和能力的重要方式。通过一个有力的团队介绍,您可以突出团队的成员、经验、技能和取得的成就,从而增加信任、吸引合作伙伴、客户或投资者的兴趣 【模板预览】 动态演示效果…...

组件库的使用和自定义组件
目录 一、组件库介绍 1、什么是组件 2、组件库介绍 3、arco.design 二、组件库的使用 1、快速上手 2、主题定制 3、暗黑模式 4、语言国际化 5、业务常见问题 三、自定义组件 2、组件开发规范 3、示例实践guide-tip 4、业务组件快速托管 一、组件库介绍 1、什么是…...

网站和API支持HTTPS,最好在Nginx上配置
随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手,从HTTP升级到HTTPS,同时支持静态网站和…...

UnitTest笔记: 拓展库DDT的使用
DDT (Data-Drivers- Tests) 允许使用不同的测试数据运行同一个测试用例,展示为不同的测试用例。 第一步: pip安装 ddt 第二步: 创建test_baidu_ddt.py 1. 测试类要使用ddt 修饰 2. 不同形式的参数化: 列表,字典&a…...

裂缝检测,只依赖OPENCV,基于YOLO8S
裂缝检测,只依赖OPENCV,YOLOV8S 现在YOLOV8S训练目标非常方便,可以直接转换成ONNX让OPENCV调用,支持C/PYTHON,原理很简单,自己找博客,有兴趣相互交流...

python编程环境使用技巧3-程序打包pyinstaller
前言 在Python中,打包指的是将Python代码和相关资源(如配置文件、图像等)整合到一个可执行的文件或安装包中,以便于在其他环境中使用。 下面是使用pyinstaller进行打包的简要步骤: 1-安装pyinstaller:在命…...
Go 自学:defer关键字
我们可以使用defer关键字延迟代码的执行,相当于我们把代码放入一个stack中,遵循last in first out的原则输出代码。 package mainimport ("fmt" )func myDefer() {for i : 0; i < 5; i {defer fmt.Print(i)} }func main() {defer fmt.Prin…...

【云计算】Docker特别版——前端一篇学会
docker学习 文章目录 一、下载安装docker(一)Windows桌面应用安装(二)Linux命令安装 二、windows注册登录docker三、Docker的常规操作(一)、基本的 Docker 命令(二)、镜像操作(三)、容器的配置(四)、登录远程仓库 四、镜像管理(一…...
.net使用RabbitMQ小记
使用RabbitMQ的优点 1.性能全面,rabbitmq性能比较全面,是消息中间件的首选 2.高并发,rabbitmq实现语言是天生就具备高并发高可用的erlang语言 3.任务异步处理,将不需要同步处理的并且耗时长的操作由消息队列通知消息接受方进行异步…...

layUI 中 穿梭框无法获取值的细节问题
初始化的时候一定要指定id,不然就会出现无法调用 获得右侧数据和实例重载的方法...

Kaggle回归问题Mercedes——Benz Greener Manufacturing
目录 前言1 题目介绍2 数据清洗3 数据可视化分析4 模型训练5 源码 前言 这是我在大三选修课的课程设计,内容参考了Kaggle上高赞的代码,有详细批注,整体比较基础,结构相对完整,便于初学者学习。这个是一个回归问题&…...

天润融通「微藤大语言模型平台2.0」以知识驱动企业高速增长
8月23日,天润融通(又称“天润云”,2167.HK),正式发布「微藤大语言模型平台2.0」。 “大模型企业知识企业知识工程”。 “不能有效记录和管理知识的企业是不能持续进步的。在企业的生产流程中,相比于其他场景࿰…...

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题
项目场景: 安装oracle时,到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案: 针对客户端安装,在cmd中执行命令:前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…...

2. 使用IDEA创建Spring Boot Hello项目并管理依赖——Maven入门指南
前言:本文将介绍如何使用IDEA创建一个Spring Boot Hello项目,并通过Maven来管理项目的依赖。我们从项目的创建到代码的编写,再到项目的构建和运行,一步步演示了整个过程。 🚀 作者简介:作为某云服务提供商的…...

Python在电路课程中的应用
1 需求 课程中有大量的计算,电路方程、复数计算,之前都是用的MATLAB online,可现在要过期了,只能更换平台。 2 工具 https://www.online-python.com/ Python3 在线工具 | 菜鸟工具 (runoob.com) 3 Sinusoid 章节 涉及到复数计…...
Spark SQL join的三种实现方式
引言 join是SQL中的常用操作,良好的表结构能够将数据分散到不同的表中,使其符合某种规范(mysql三大范式),可以最大程度的减少数据冗余,更新容错等,而建立表和表之间关系的最佳方式就是join操作。 对于Spark来说有3种…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...