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.mzph.cn/news/638664.shtml

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

相关文章

检索增强(RAG)的方式---重排序re-ranking

提升RAG&#xff1a;选择最佳嵌入Embedding&重排序Reranker模型 检索增强生成(RAG)技术创新进展&#xff1a;自我检索、重排序、前瞻检索、系统2注意力、多模态RAG RAG的re-ranking指的是对初步检索出来的候选段落或者文章&#xff0c;通过重新排序的方式来提升检索质量。…

mac安装部署gitbook教程

mac安装部署gitbook教程 前言一、安装准备二、GitBook安装项目初始化 前言 一些自己实际操作的记录。 一、安装准备 Node.js gitbook基于Node.js&#xff0c;所以需要提前安装。 下载地址&#xff1a;https://nodejs.org/en/&#xff0c;可以下载比较新的版本。(但我的建议是不…

Linux指令补充和权限简单介绍

一.tar指令 形式&#xff1a;tar [-cxtzjvf] 文件与目录 ....
 参数&#xff1a;
 -c &#xff1a;建立一个压缩文件的参数指令(create 的意思)&#xff1b; -x &#xff1a;解开一个压缩文件的参数指令&#xff01; -t &#xff1a;查看 tarfile 里面的文件&#xff01; -…

为什么C++17要引入std::string_view?

目录 1.引言 2.原理分析 2.1.结构 2.2.构造函数 2.3.成员函数 2.4.std::string_view字面量 3.实例 3.1.std::string_view和std::string的运算符操作 3.2.查找函数使用 3.3.std::string_view和临时字符串 4.总结 1.引言 在C/C日常编程中&#xff0c;我们常进行数据的…

JDK8新增的时间类

目录 内容大纲&#xff1a; 1、Zoneld时区 2、Instant时间戳 3、ZoneDateTime带时区的时间 4、DateTimeFormatter用于时间的格式化和解析 5、Calendar类&#xff1a; 6、工具类 内容大纲&#xff1a; 1、Zoneld时区 方法名说明static Set<String>getArailableZoneIds()获…

java集合(4)

1.HashSet集合 1.1HashSet集合概述和特点【应用】 底层数据结构是哈希表 存取无序 不可以存储重复元素 没有索引,不能使用普通for循环遍历 1.2HashSet集合的基本应用【应用】 存储字符串并遍历 public class HashSetDemo {public static void main(String[] args) {//创…

MCU常用外设总线

目录 前言一、时钟与中断二、GPIO三、ADC四、定时器4.1 基本定时器4.2 通用定时器4.2.1 输入捕获4.2.2 输出比较 五、UART六、IIC七、SPI 前言 本文主要讲单片机外设的功能&#xff0c;即这些外设是什么&#xff0c;可以用来干什么&#xff0c;了解了之后我们就可以通过相应的寄…

学校服务器hpc东南大学,下载国家基因组科技中心数据 gsa-human ascp chatpt建议 Linux系统中写代码

使用ascp批量下载数据 You files.csv 帮我写个批量下载的脚本&#xff0c;批量下载时候&#xff0c;把路径中最后的HRR659816批量替换成 Accession列的内容就行了。下面是示例 ascp -v -QT -l 300m -P33001 -k1 -i ~/.aspera/connect/etc/aspera01.openssh_for_gsa -d asper…

贝锐蒲公英云AP体验:云端快速部署、远程管理,轻松满足办公环境

公司原本的网络由于采用多个路由器&#xff0c;导致无线信号杂乱&#xff0c;管理不便&#xff0c;且远程办公体验较差&#xff0c;作为IT负责人的我&#xff0c;一直想寻找一个可以实现网络统一管理并有效提升远程工作便捷性的产品。 于是&#xff0c;我决定在公司内部部署贝…

5G_射频测试_基础概念(二)

定义了测试参考点&#xff0c;不同的RRU类型 C类型传统RRU Conducted and radiated requirement reference points 4.3.1 BS type 1-C&#xff08;传统RRU一般测试点就是连接天线的射频接头&#xff09; 4.3.2 BS type 1-H&#xff08;宏站MassiveMIMO 矩阵天线&#xff…

Nginx实现html页面注入浏览器监控js代码片段

一、背景 最近看到关于浏览器监控相关的东西&#xff0c;顺带着就记录一下其实现的大致原理过程。 在我们没对web应用做浏览器监控的时候&#xff0c;我们其实无法感知到用户对我们应用页面的使用习惯、使用中是否遇到问题&#xff0c;例如白屏情况出现多少次、请求失败情况、j…

ROS第 12 课 Launch 启动文件的使用方法

文章目录 第 12 课 Launch 启动文件的使用方法1.本节前言2.Lanuch 文件基本语法2.2 参数设置2.3 重映射嵌套 3.实操练习 第 12 课 Launch 启动文件的使用方法 1.本节前言 我们在前面的教程里面通过命令行来尝试运行新的节点。但随着创建越来越复杂的机器人系统中&#xff0c;打…

【Java】Maven的基本使用

Maven的基本使用 Maven常用命令 complie&#xff1a;编译clean&#xff1a;清理test&#xff1a;测试package&#xff1a;打包install&#xff1a;安装 mvn complie mvn clean mvn test mvn package mvn installMaven生命周期 IDEA配置Maven Maven坐标 什么是坐标&#xff1f;…

可视化 | 【echarts】中国地图热力图

文章目录 &#x1f4da;html和css&#x1f4da;js&#x1f407;整体框架&#x1f407;getGeoJson&#x1f407;echarts绘图⭐️整体框架⭐️option配置项 【echarts】渐变条形折线复合图【echarts】金字塔图 &#x1f4da;html和css html&#xff1a;整合<!DOCTYPE html&g…

5G_射频测试_发射机测量(四)

6.2 Base station output power 用于测量载波发射功率的大小&#xff0c;功率越大小区半径越大但是杂散也会越大 载波功率&#xff08;用频谱仪测&#xff09;天线口功率&#xff08;用功率计测&#xff09;载波功率是以RBW为单位的filter测量的积分功率不同带宽的多载波测试时…

java垃圾回收GC过程

GC&#xff08;Gabage Collection&#xff09; 用于回收堆中的垃圾数据 清理方法 1.标记-清理 对数据标记&#xff0c;然后清理 缺点&#xff1a;容易产生内存碎片 2.标记-整理 对标记后的数据清理&#xff0c;剩下数据前移 缺点&#xff1a;每次清理后数据都要迁移&#xff0…

JAVA算法-查找

目录 基本查找*&#xff1a; 二分查找*&#xff1a; 数据单调递增&#xff1a; 数据单调递减&#xff1a; 总结规律&#xff1a; 插值查找*&#xff1a; 斐波那契查找&#xff08;了解原理&#xff09;&#xff1a;以后补 分块 查找*&#xff1a; 特殊 情况&#xff0…

docker部署

//创建一个文件夹 mkdir soft //进入soft文件夹 cd soft 安装必要的系统工具: yum install -y yum-utils device-mapper-persistent-data lvm2 配置阿里云Docker Yum源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.rep…

c# 视频播放之Windows Media Player

最近想给软件加个视频播放功能&#xff0c;在网上看有好几个方式&#xff0c;最后决定用 Windows Media Player 和Vlc.DotNet.Forms。 这篇文章主要讲Windows Media Player&#xff0c;它的优点&#xff1a;代码简单&#xff0c;视频操作功能都有&#xff0c;能播放网络和本地…

数据结构之顺序表的增删查改

别丢了你的勇敢 前言&#xff1a; 自今日起&#xff0c;我们正式越过C语言的大山&#xff0c;走向了数据结构的深山&#xff0c;现如今摆在我们面前的第一个坎就是顺序表&#xff0c;我们需要了解顺序表的定义&#xff0c;并且知道&#xff0c;如何对其进行增删查改&#xff0…