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": ["*"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/55764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微服务】02-集成事件与MediatR

文章目录 1.集成事件1.1 定义1.2 集成事件工作原理1.3 总结 2.使用RabbitMQ来实现EventBus2.1 RabbitMQ安装2.2 CAP框架实现RabbitMQ2.2.1 CAP框架实现架构2.2.2 CAP框架实现原理 3.MediatR3.1 使用Mediator实现命令查询职责分离模式(CQRS)3.1.1 核心对象 3.2 处理领域事件3.2.…

安装部署JavaFX和IDEA添加JavaFX的详细步骤

安装部署JavaFX和IDEA添加JavaFX的详细步骤 一、认识JavaFX二、下载JavaFX三、解压到目录下四、IDEA导入JavaFX五、添加JavaFX的VM选项六、运行命令七、总结一、认识JavaFX JavaFX是Java平台的一个图形用户界面(GUI)工具包,用于创建丰富、交互式和可视化的应用程序。JavaFX提…

Java线程 - 详解(1)

一&#xff0c;创建线程 方法一&#xff1a;继承Thread类 class MyThread extends Thread{Overridepublic void run() {System.out.println("线程1");} }public class Test {public static void main(String[] args) {MyThread myThread new MyThread();myThread.…

如何管理Linux用户和权限?

首先&#xff0c;你要知道的是Linux是一个非常严谨和安全的操作系统。所以&#xff0c;它需要对用户和权限进行精细的管理。 首先&#xff0c;我们需要了解一下Linux系统中的用户。你可以把用户想象成生活在系统中的居民。他们需要有一个唯一的用户名来标识自己&#xff0c;并且…

【C语言】2023.8.27C语言入学考试复盘总结

前言 本篇文章记录的是对于2023年8月27日的 C语言 的入学考试的整理总结 成绩&#xff1a;220/240 题目&#xff1a;9/12 错题整理 首先先对于我没做出来的三道题做一个整理 错题1&#xff1a;7-4 分段函数PLUS 题干 以下是一个二元分段函数&#xff0c;请你根据所给的函…

Linux对用户路径授权

chown -R wasup:wasup /tmp 用root用户登录 授权 这个命令 chown -R wasup:wasup /tmp 用于递归地改变 /tmp 目录及其所有内容的所有者和所属组。 解释如下&#xff1a; chown: 这是用于修改文件或目录所有者和所属组的命令。-R: 这是一个选项&#xff0c;表示递归地应用修…

android系统启动流程之init启动分析

先根据上图来描述下安卓整个系统的启动流程&#xff1a; 当上电时&#xff0c;系统先执行BootRom, 加载引导程序执行。 然后进入bootloader&#xff0c;在安卓系统中基本上这个bootloader是uboot, 通过uboot引导启动内核&#xff0c;此时运行在kernel空间&#xff0c;这时的i…

基于全新电脑环境安装pytorch的GPU版本

前言&#xff1a; 距离第一次安装深度学习的GPU环境已经过去了4年多&#xff08;当时TensorFlow特别麻烦&#xff09;&#xff0c;现在发现安装pytorch的GPU版本还是很简单方便的&#xff0c;流程记录如下。 安装步骤&#xff1a; 步骤一&#xff1a;官网下载Anaconda Free…

研磨设计模式day11观察者模式

目录 场景 代码示例 定义 观察者模式的优缺点 本质 何时选用 简单变型-区别对待观察者 场景 我是一家报社&#xff0c;每当我发布一个新的报纸时&#xff0c;所有订阅我家报社的读者都可以接收到 代码示例 报纸对象 package day11观察者模式;import java.util.Observ…

Python+TinyPNG熊猫网站自动化的压缩图片

前言 本篇在讲什么 PythonTinyPNG自动化处理图片 本篇需要什么 对Python语法有简单认知 依赖Python2.7环境 依赖TinyPNG工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449;…

AI + Milvus:将时尚应用搭建进行到底

在上一篇文章中&#xff0c;我们学习了如何利用人工智能技术&#xff08;例如开源 AI 向量数据库 Milvus 和 Hugging Face 模型&#xff09;寻找与自己穿搭风格相似的明星。在这篇文章中&#xff0c;我们将进一步介绍如何通过对上篇文章中的项目代码稍作修改&#xff0c;获得更…

[管理与领导-53]:IT基层管理者 - 8项核心技能 - 8 - 持续改进

前言&#xff1a; 管理者存在的价值就是制定目标&#xff0c;即目标管理、通过团队&#xff08;他人&#xff09;拿到结果。 要想通过他人拿到结果&#xff1a; &#xff08;1&#xff09;目标&#xff1a;制定符合SMART原则的符合业务需求的目标&#xff0c;团队跳一跳就可以…

Microsoft正在将Python引入Excel

Excel和Python这两个世界正在碰撞&#xff0c;这要归功于Microsoft的新集成&#xff0c;以促进数据分析和可视化 Microsoft正在将流行的编程语言Python引入Excel。该功能的公共预览版现已推出&#xff0c;允许Excel用户操作和分析来自Python的数据。 “您可以使用 Python 绘图…

Git向远程仓库与推送以及拉取远程仓库

理解分布式版本控制系统 1.中央服务器 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统&#xff01;什么意思呢? 那我们多人…

VUE3基础

一、vue-router v4.x 介绍 | Vue Router 1、安装 yarn add vue-routernext next代表最新的版本 2、路由配置 在src目录下&#xff0c;新建router/index.ts&#xff0c;具体配置如下 import {RouteRecordRaw,createRouter,createWebHashHistory} from vue-router const r…

NO.04 MyBatis的各种查询功能

目录 1、查询一个实体类对象 2、查询一个List集合 3、查询单个数据 5、查询多条数据并存储在Map集合中 5.1 方法一&#xff1a;将数据存储在map集合中&#xff0c;再将map集合存储在List集合中 5.2 方法二&#xff1a;将数据存储在map集合中 6、MyBatis中为Java中常用的…

JavaWeb 速通JQuery

目录 一、JQuery快速入门 1.基本介绍 : 2.入门案例 : 二、JQuery对象 1.基本介绍 : 2.DOM对象 --> JQuery对象 : 3.JQuery对象 --> DOM对象 : 三、JQuery选择器 1.简介 : 2.基本选择器 : 3.层次选择器 : 4.过滤选择器 : 4.1 基础过滤选择器 4.2 内容过滤选择…

精益求精:如何在 React 项目中巧妙运用 Redux 并优化项目结构

在前端开发中&#xff0c;React 和 Redux 已经成为构建可扩展、高效的应用程序的首选工具。本文将向您介绍如何在 React 项目中使用 Redux 并精心划分项目结构&#xff0c;以确保代码的可维护性和可扩展性。 第一步&#xff1a;安装 Redux 首先&#xff0c;确保您的项目已经集…

Vue中ElementUI结合transform使用时,发现弹框定位不准确问题

在近期开发中&#xff0c;需要将1920*1080放到更大像素大屏上演示&#xff0c;所以需要使用到transform来对页面进行缩放&#xff0c;但是此时发现弹框定位出错问题&#xff0c;无法准备定位到实际位置。 查看element-ui官方文档无果后&#xff0c;打算更换新的框架进行开发&am…

Java升级JDK17(更高版本同理),修改maven

记住三个网址就行&#xff1a;下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的&#xff1a;这个是开源的&#xff08;推荐这个&#xff01;&am…