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

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风格请求&#xff0c;这里记录一些常用的Java API和Postman Url Java API调用Es 1. 查询总文档数 Testvoid getAllCount() { // RestHighLevelClient clientnew RestHighLevelClient(RestClient.builder(new HttpHost("192.168…...

Rust 学习笔记(卷二)

文章目录 Rust 学习笔记&#xff08;卷二&#xff09;八、工程1. package 和 cratepackage 总览包根&#xff08;crate root&#xff09; 2. 模块初识模块单个源文件中的嵌套模块使用具有层级结构的源文件构造嵌套模块 3. 文档4. 使用第三方包5. 打包自己的包 九、标准库十、多…...

android amazon 支付接入

流程&#xff1a; 申请 Amazon 开发者帐号 ---> 在 amazon 控制台添加应用 ---> 添加应用内商品&#xff08;消费类商品&#xff0c;授权类商品&#xff0c;订阅类商品&#xff09;---> 导出 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模板。团队介绍是向他人展示团队的实力、专业性和能力的重要方式。通过一个有力的团队介绍&#xff0c;您可以突出团队的成员、经验、技能和取得的成就&#xff0c;从而增加信任、吸引合作伙伴、客户或投资者的兴趣 【模板预览】 动态演示效果…...

组件库的使用和自定义组件

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

网站和API支持HTTPS,最好在Nginx上配置

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

UnitTest笔记: 拓展库DDT的使用

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

裂缝检测,只依赖OPENCV,基于YOLO8S

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

python编程环境使用技巧3-程序打包pyinstaller

前言 在Python中&#xff0c;打包指的是将Python代码和相关资源&#xff08;如配置文件、图像等&#xff09;整合到一个可执行的文件或安装包中&#xff0c;以便于在其他环境中使用。 下面是使用pyinstaller进行打包的简要步骤&#xff1a; 1-安装pyinstaller&#xff1a;在命…...

Go 自学:defer关键字

我们可以使用defer关键字延迟代码的执行&#xff0c;相当于我们把代码放入一个stack中&#xff0c;遵循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&#xff08;一&#xff09;Windows桌面应用安装&#xff08;二&#xff09;Linux命令安装 二、windows注册登录docker三、Docker的常规操作(一)、基本的 Docker 命令(二)、镜像操作(三)、容器的配置(四)、登录远程仓库 四、镜像管理(一…...

.net使用RabbitMQ小记

使用RabbitMQ的优点 1.性能全面&#xff0c;rabbitmq性能比较全面&#xff0c;是消息中间件的首选 2.高并发&#xff0c;rabbitmq实现语言是天生就具备高并发高可用的erlang语言 3.任务异步处理&#xff0c;将不需要同步处理的并且耗时长的操作由消息队列通知消息接受方进行异步…...

layUI 中 穿梭框无法获取值的细节问题

初始化的时候一定要指定id&#xff0c;不然就会出现无法调用 获得右侧数据和实例重载的方法...

Kaggle回归问题Mercedes——Benz Greener Manufacturing

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

天润融通「微藤大语言模型平台2.0」以知识驱动企业高速增长

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

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题

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

2. 使用IDEA创建Spring Boot Hello项目并管理依赖——Maven入门指南

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

Python在电路课程中的应用

1 需求 课程中有大量的计算&#xff0c;电路方程、复数计算&#xff0c;之前都是用的MATLAB online&#xff0c;可现在要过期了&#xff0c;只能更换平台。 2 工具 https://www.online-python.com/ Python3 在线工具 | 菜鸟工具 (runoob.com) 3 Sinusoid 章节 涉及到复数计…...

Spark SQL join的三种实现方式

引言 join是SQL中的常用操作&#xff0c;良好的表结构能够将数据分散到不同的表中&#xff0c;使其符合某种规范(mysql三大范式)&#xff0c;可以最大程度的减少数据冗余&#xff0c;更新容错等&#xff0c;而建立表和表之间关系的最佳方式就是join操作。 对于Spark来说有3种…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下&#xff0c;音视频内容犹如璀璨繁星&#xff0c;点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频&#xff0c;到在线课堂中知识渊博的专家授课&#xff0c;再到影视平台上扣人心弦的高清大片&#xff0c;音…...

Linux-进程间的通信

1、IPC&#xff1a; Inter Process Communication&#xff08;进程间通信&#xff09;&#xff1a; 由于每个进程在操作系统中有独立的地址空间&#xff0c;它们不能像线程那样直接访问彼此的内存&#xff0c;所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...