引入依赖

 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.4.0</version><exclusions><exclusion><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId></exclusion><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.4.0</version></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.4.0</version></dependency>

ES客户端配置类

package com.ares.es;import com.ctrip.framework.apollo.ConfigService;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.HttpAsyncResponseConsumerFactory;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ElasticsearchConfig {public static final RequestOptions COMMON_OPTIONS;String key = "ELASTICSEARCH";private String username = "x'x'x'x";private String passwrod = "x'x'x'x'x'x";private String hostName= "es-cn-x'x'x'x'x.elasticsearch.aliyuncs.com";private Integer hostport= 9200;static {RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();// 默认缓存限制为100MB,此处修改为30MB。builder.setHttpAsyncResponseConsumerFactory(new HttpAsyncResponseConsumerFactory.HeapBufferedResponseConsumerFactory(30 * 1024 * 1024));COMMON_OPTIONS = builder.build();}@Bean("esClient")public RestHighLevelClient createRestHighLevelClient() {final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, passwrod));// 通过builder创建rest client,配置http client的HttpClientConfigCallback。// 单击所创建的Elasticsearch实例ID,在基本信息页面获取公网地址,即为ES集群地址。RestClientBuilder builder = RestClient.builder(new HttpHost(hostName, hostport)).setHttpClientConfigCallback(httpClientBuilder ->httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));//防止 java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3RestClientBuilder.RequestConfigCallback configCallback = new RestClientBuilder.RequestConfigCallback() {@Overridepublic org.apache.http.client.config.RequestConfig.Builder customizeRequestConfig(org.apache.http.client.config.RequestConfig.Builder requestConfigBuilder) {return requestConfigBuilder.setConnectTimeout(5000*1000).setSocketTimeout(6000 * 1000);//更改客户端的超时限制默认30秒现在改为6000s}};builder.setRequestConfigCallback(configCallback);// RestHighLevelClient实例通过REST low-level client builder进行构造。RestHighLevelClient highClient = new RestHighLevelClient(builder);return highClient;}
}

批量插入

  @Autowiredprivate RestHighLevelClient esClient;public void bulkPutIndex(List<Map<String, Object>> list) throws IOException {if (CollectionUtil.isEmpty(list)) {return;}String index = "media_play_time_test";String type = "_doc";int size = list.size();BulkRequest request = new BulkRequest();for (int i = 0; i < size; i++) {Map<String, Object> map = list.get(i);request.add(new IndexRequest(index, type).source(map, XContentType.JSON));}esClient.bulk(request, RequestOptions.DEFAULT);}

ES 批量插入数据 bulk相关推荐

  1. linux批量es数据,Elasticsearch批量插入数据

    Elasticsearch批量插入数据 使用bulk批量操作数据库 1. 创建批量操作文件 格式: {"index":{"_index":"home& ...

  2. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...

  3. SQLServer使用表值参数,高性能批量插入数据

    记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...

  4. Mysql批量插入数据问题解决和优化

    Mysql批量插入数据问题解决和优化 一.问题描述 项目中mysql批量插入大概50000左右数据,使用事务和批量,但是速度依旧很慢,大约60s左右,迫切希望改进这个问题. 二.问题原因 尽管是批量a ...

  5. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  6. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

  7. android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)

    android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本) 参考文章: (1)android SQLite 批量插入数据慢的解决方案 (针对于不同的andro ...

  8. php addall,ThinkPHP3.2框架使用addAll()批量插入数据的方法

    这篇文章主要介绍了ThinkPHP3.2框架使用addAll()批量插入数据的方法,结合实例形式分析了thinkPHP针对单条数据插入及批量数据插入操作的相关实现技巧,需要的朋友可以参考下 本文实例讲 ...

  9. .NET Excel 2003 批量插入数据很慢的解决办法

    .Net利用Office组件的操作Excel批量插入数据据的时候,会非常慢. 我也曾经想利用其它组件来实现这个功能,但是效果不是很理想.后来经过查阅资料,发现Excel.Range的Value属性是O ...

最新文章

  1. qt同时两个动画执行_Qt实现数字滚动动画效果
  2. linux select系统调用函数分析,Linux select系统调用
  3. ngx_http_lua_inject_socket_tcp_api函数代码注释
  4. python代码大全表解释-python中的字典用法大全的代码
  5. [转]Tomcat优化之内存、并发、缓存
  6. 亲测三遍!8步搭建一个属于自己的网站
  7. php base64 gzip加密,PHP base64+gzinflate压缩加密和解密算法
  8. Fedora 17配置ssh及Windows远程连接
  9. android列表的默认值,ListPreference默认值没有显示
  10. CISCO路由器NTP服务器配置
  11. 内置RTK北斗高精度定位的智能安全帽完成调试,上报至smarteye平台
  12. linux沙箱隔离_为容器提供更好的隔离:沙箱容器技术概览
  13. 9012 年了,Array 数组的方法赶紧用起来!
  14. 在信息不完全对称时,你可以用你的“空城计”虚张声势
  15. 自动化测试与手工测试对比
  16. 抖音带货赚钱吗?有哪些技巧?
  17. 单片机c语言篮球比分_基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)...
  18. HTML+CSS练习案例
  19. Visual Studio技巧之打造拥有自己标识的代码模板
  20. 华汇超市二层的小餐馆可当MBA案例了

热门文章

  1. linux-sed-案例100例
  2. 属于哪个单元_标配三单元8英寸低音炮!STARKE Echo5.1时尚卫星家庭影院试用
  3. VMWare虚拟机非正常关闭后无法启动的解决方案
  4. js 拖拽上传文件夹
  5. 在03服务器系统 SP2中如何构建IDS
  6. 服务器 搭建虚拟主机,server2016下搭建web服务器三种虚拟主机实验文档
  7. Jenkins更换插件下载源(清华源)
  8. php导出1万条数据excel_实用!用PHP导出百万级大数据到Excel
  9. Java中的并发编程
  10. 使用vue.js构建一个知乎日报