Es bulk批量导入数据(1w+以上)

最近在学习es的理论知识以及实际操作,随时更新~
概要:首先你得有1w条数据的json,然后用java读取json文件导入

一. 创建Json数据

首先我生成1.5w条数据,是为了实践分页查询,用from-size和scroll翻页去实践
生成四个字段,name、age、sex、telephone

代码如下:可直接复制粘贴用

package es;import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;/*** 生成1.5W条json数据*/
public class JsonGenerator {public static void main(String[] args) {int numberOfRecords = 15000;String outputFile = "user.json";try (FileWriter writer = new FileWriter(outputFile)) {for (int i = 0; i < numberOfRecords; i++) {writer.write(generateJsonRecord());if (i < numberOfRecords - 1) {writer.write(",");} else {writer.write(" ");}}System.out.println("Generated " + numberOfRecords + " records successfully.");} catch (IOException e) {e.printStackTrace();}}private static String generateJsonRecord() {String name = generateRandomName();int age = generateRandomAge();String sex = generateRandomSex();String telephone = generateRandomTelephone();return "{\"name\":\"" + name + "\",\"age\":\"" + age + "\",\"sex\":\"" + sex + "\",\"telephone\":\"" + telephone + "\"}";}private static String generateRandomName() {String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";StringBuilder sb = new StringBuilder();Random random = new Random();for (int i = 0; i < 5; i++) {sb.append(characters.charAt(random.nextInt(characters.length())));}return sb.toString();}private static int generateRandomAge() {Random random = new Random();return random.nextInt(65) + 18;  // Generate age between 18 and 65}private static String generateRandomSex() {Random random = new Random();return random.nextBoolean() ? "Male" : "Female";}private static String generateRandomTelephone() {StringBuilder sb = new StringBuilder();Random random = new Random();for (int i = 0; i < 10; i++) {sb.append(random.nextInt(10));  // Append random digit to the telephone number}sb.append("-");for (int i = 0; i < 3; i++) {sb.append(random.nextInt(10));  // Append random digit to the telephone number}return sb.toString();}
}

生成的文件在该位置上
在这里插入图片描述

二.bulk 批量导入数据

public class EsConnectionExample {                                   public static void main(String[] args) throws IOException {      // 创建客户端                                                                                                            RestHighLevelClient client = new RestHighLevelClient(                                                               RestClient.builder(                                                                                         new HttpHost("ip", port, "http"))); // 修改为你的ES地址和端口                                      //bulk 导入  //这块改成你的文件的地址                                                                                         try (BufferedReader reader = new BufferedReader(new FileReader("user.json"))) {                     String line;                                                                                    // 构造 BulkRequest 对象并添加要导入的文档                                                                   BulkRequest request = new BulkRequest();                                                        while ((line = reader.readLine()) != null) {                                                    XContentBuilder builder = XContentFactory.jsonBuilder()                                     .startObject()                                                                      .field("name", line)                                                                .field("age", line)                                                                 .field("sex" , line)                                                                .field("telephone", line)                                                           .endObject();   //这块改成你的索引名字                                                                    IndexRequest indexRequest = new IndexRequest("my_index")                                    .source(builder);                                                                   request.add(indexRequest);                                                                  }                                                                                               // 发送 BulkRequest 请求                                                                            BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);                           if (response.hasFailures()) {                                                                   System.out.println("Failed to import documents.");                                          } else {                                                                                        System.out.println("Documents imported successfully!");                                     }                                                                                               } catch (IOException e) {                                                                           e.printStackTrace();                                                                            } finally {                                                                                         // 关闭 ElasticSearch 客户端连接                                                                       client.close();                                                                                 } }                                                                                                  }                                                                                                                                                                                                               

此时已经插入了
在这里插入图片描述

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

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

相关文章

Servlet系列:生命周期(init、 service、destroy)详解

Servlet的生命周期是由Web容器&#xff08;如Tomcat&#xff09;管理的&#xff0c;包括以下三个阶段&#xff1a; 加载和实例化&#xff1a;当Web应用程序启动时&#xff0c;Web容器会加载和实例化Servlet。加载和实例化过程可以在应用程序启动时自动完成&#xff0c;也可以通…

Nginx快速入门

1.Ngix介绍 1.1 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一个公…

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做&#xff0c;start all不会包含classroom&#xff0c;需…

数据结构之树和二叉树定义

数据结构之树和二叉树定义 1、树的定义2、树的基本概念3、二叉树的定义 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0c;分析和研究计算机加工的数据的特性&#xff0c;以…

【计算机网络】【Python】【练习题】【新加坡南洋理工大学】【Computer Control Network】

一、题目描述 该题目描述一个网络中数据包交换&#xff08;Packet Switching&#xff09;的例子。题目如下&#xff1a; 二、问题解答&#xff08;使用Python&#xff09; Q1&#xff1a;如何求出0.0004这个值&#xff1f; &#xff08;1&#xff09;、公式推导过程&#xf…

LeetCode 热题 100 | 双指针(下)

目录 42. 接雨水 1 方法一&#xff1a;我的方法 2 方法二&#xff1a;动态规划 3 方法三&#xff1a;双指针 菜鸟做题第一周&#xff0c;语言是 C 42. 接雨水 1 方法一&#xff1a;我的方法 Warning&#xff1a;这是我的智障做法&#xff0c;请勿模仿 我只能说它教会…

深度解析Python关键字:掌握核心语法的基石(新版本35+4)

目录 关键字 keyword 关键字列表 kwlist softkwlist 关键字分类 数据类型 True、False None 运算类型 and、or、not in is 模块导入 import 辅助关键字 from、as 上下文管理 with 占位语句 pass 流程控制 if、elif、else for while break、continue…

20240117在本地机器识别OCR法语电影的字幕效果PK

20240117在本地机器识别OCR法语电影的字幕效果PK 2024/1/17 11:18 1959 - Jirai Cracher Sur Vos Tombes [Gast, Vian].avi https://www.pianbar.net//drama/52892.html 1959[我唾弃你的坟墓]Jirai cracher sur vos tombes[BT下载/迅雷下载] magnet:?xturn:btih:7c9c99d9d048…

系统配置dns主从服务器

一、准备两台主机&#xff0c;区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…

如何快速打开github

作为一个资深码农&#xff0c;怎么能不熟悉全球最大的同性交友社区——github呢&#xff0c;但头疼的是github有时能打开&#xff0c;有时打不开&#xff0c;这是怎么回事&#xff1f; 其实问题出在github.com解析DNS上&#xff0c;并不是需要FQ。下面提供一个方法&#xff0c;…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用相机日志跟踪功能1.引用合适的类文件2.通过NEOAPI SDK使用相机日志跟踪功能3.通…

C#,入门教程(30)——扎好程序的笼子,错误处理 try catch

上一篇&#xff1a; C#&#xff0c;入门教程(29)——修饰词静态&#xff08;static&#xff09;的用法详解https://blog.csdn.net/beijinghorn/article/details/124683349 程序员语录&#xff1a;凡程序必有错&#xff0c;凡有错未必改&#xff01; 程序出错的原因千千万&…

Centos 8 安装 Elasticsearch

简介&#xff1a;CentOS 8是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统。它是一款稳定、可靠、安全的服务器操作系统&#xff0c;适合用于企业级应用和服务的部署。CentOS 8采用了最新的Linux内核和软件包管理系统&#xff0c;提供…

ThinkPad T14/T15/P14s/P15s gen2电脑原厂Win10系统镜像 恢复笔记本出厂时预装自带OEM系统

lenovo联想原装出厂Windows10系统&#xff0c;适用型号&#xff1a; ThinkPad T14 Gen 2&#xff0c;ThinPad T15 Gen 2&#xff0c;ThinkPad P14s Gen 2&#xff0c;ThinkPad P15s Gen 2 &#xff08;20W1,20W5,20VY,20W7,20W0,20W4,20VX,20W6&#xff09; 链接&#xff1…

Django从入门到精通(二)

目录 三、视图 3.1、文件or文件夹 3.2、相对和绝对导入urls 3.3、视图参数requests 3.4、返回值 3.5、响应头 3.6、FBV和CBV FBV 四、静态资源 4.1、静态文件 4.2、媒体文件 五、模板 5.1、寻找html模板 5.2、模板处理的本质 5.3、常见模板语法 5.4、内置模板函…

day25 组合总和Ⅲ 电话号码的字母组合

题目1&#xff1a;216 组合总和Ⅲ 题目链接&#xff1a;216 组合总和Ⅲ 题意 找出相加之和为n的k个数的组合 数字只可使用1~9之间的数&#xff08;包括 1 9&#xff09;且每个数字只能使用1遍 题目中有两个限制条件&#xff1a;1&#xff09;k个数 2&#xff09;k个…

C#使用DateTime.Now静态属性动态获得系统当前日期和时间

目录 一、实例 1.源码 2.生成效果 二、相关知识点 1.Thread类 &#xff08;1&#xff09;Thread.Sleep()方法 &#xff08;2&#xff09;Thread(ThreadStart) &#xff08;3&#xff09;IsBackground &#xff08;4&#xff09;Invoke( &#xff09; 2.CreateGrap…

༺༽༾ཊ—Unity之-01-单例模式—ཏ༿༼༻

在游戏开发过程中&#xff0c;我们会创建各种各样的类&#xff0c;再用new生成实例&#xff0c;有些时候我们需要这个类在整个游戏中是唯一出现的&#xff0c;比如一些管理器比如声音管理器等&#xff0c;没必要创建很多实例&#xff0c;就算有很多模块需要各种声音功能&#x…

为什么国产操作系统是基于linux研发的呢?

为什么国产操作系统是基于linux研发的呢&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&am…

数字IC笔试题——门控时钟与控制信号电平、与门门控、或门门控、上升沿门控、下降沿门控

门控时钟问题。 &#xff08;华为-2019-芯片-数字-34&#xff09; 从后端设计考虑&#xff0c;在必须使用门控时钟的时候&#xff0c;需要遵循一个原则&#xff1a;门控时钟的输出只能跟着时钟信号进行跳变&#xff0c;而不能跟着控制信号进行跳变&#xff0c;也就是说对于用N…