Elasticsearch5.0 Java Api(六) -- 批量导入索引

  将计算机本地的.json格式文件中的数据,批量导入到索引库中

 1 package com.juyun.test;
 2
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileReader;
 7 import java.io.IOException;
 8 import java.net.InetAddress;
 9 import java.net.UnknownHostException;
10 import java.util.ArrayList;
11 import java.util.List;
12
13 import org.elasticsearch.action.bulk.BulkRequestBuilder;
14 import org.elasticsearch.client.Client;
15 import org.elasticsearch.client.transport.TransportClient;
16 import org.elasticsearch.common.settings.Settings;
17 import org.elasticsearch.common.transport.InetSocketTransportAddress;
18 import org.elasticsearch.transport.client.PreBuiltTransportClient;
19
20 public class ElasticSearchBulkIn {
21
22     private static Client client;
23
24     /**
25      * 从外部文件批量导入数据
26      * @param args
27      */
28     public static void main(String[] args) {
29
30         try {
31
32             // 设置集群名称
33             Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();
34             // 创建client
35             client = new PreBuiltTransportClient(settings)
36                     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.16.0.157"), 9300));
37
38             //FirstThread ft=new FirstThread(); // 创建FirstThread对象
39             //ft.start();
40
41             File article = new File("C:/Users/juyun/Desktop/al.json");
42             FileReader fr=new FileReader(article);
43             BufferedReader bfr=new BufferedReader(fr);
44             String line=null;
45             BulkRequestBuilder bulkRequest=client.prepareBulk();
46             int count=0;
47            /* while((line=bfr.readLine())!=null){
48                 bulkRequest.add(client.prepareIndex("newindex","newhttp").setSource(line)); // 逐行写入
49                 count++;
50                 System.out.println(count);
51                 bulkRequest.execute().actionGet();
52             }*/
53             bulkRequest.execute().actionGet();
54             bfr.close();
55             fr.close();
56         } catch (UnknownHostException e) {
57             e.printStackTrace();
58         } catch (FileNotFoundException e) {
59             e.printStackTrace();
60         } catch (IOException e) {
61             e.printStackTrace();
62         }
63     }
64
65
66     class FirstThread extends Thread{
67         @Override
68         public void run() {
69             try{
70                 File article = new File("C:/Users/juyun/Desktop/al.json");
71                 FileReader fr=new FileReader(article);
72                 BufferedReader bfr=new BufferedReader(fr);
73                 String line=null;
74                 BulkRequestBuilder bulkRequest=client.prepareBulk();
75                 int count=0;
76                 while((line=bfr.readLine())!=null){
77                     bulkRequest.add(client.prepareIndex("newindex","newhttp").setSource(line)); // 逐行写入
78                     count++;
79                     System.out.println(count);
80                     bulkRequest.execute().actionGet();
81                 }
82                 bulkRequest.execute().actionGet();
83                 bfr.close();
84                 fr.close();
85             }catch(Exception e){
86             }
87         }
88     }
89 }

ElasticSearchBulkIn

时间: 2024-08-07 04:31:47

Elasticsearch5.0 Java Api(六) -- 批量导入索引的相关文章

Elasticsearch5.0 Java Api(五) -- 批量导出索引

从索引库中将检索到的数据导出到外部文件,文件格式为.json 1 package com.juyun.test; 2 3 import java.io.BufferedWriter; 4 import java.io.File; 5 import java.io.FileWriter; 6 import java.io.IOException; 7 import java.net.InetAddress; 8 import java.net.UnknownHostException; 9 10

Elasticsearch5.0 Java Api(一) -- 插入索引

Elasticsearch5.X官方手册 Elasticsearch5.X官方手册中文版 Elasticsearch5.X Java Api官方手册 导入maven依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.0.0</version> </depend

Elasticsearch5.0 Java Api(四) -- 检索索引

测试检索索引库的功能 1 package com.juyun.test; 2 3 import java.net.InetAddress; 4 5 import org.elasticsearch.client.Client; 6 import org.elasticsearch.common.settings.Settings; 7 import org.elasticsearch.common.transport.InetSocketTransportAddress; 8 import or

Elasticsearch5.0 Java Api(三) -- 删除索引

测试删除索引的功能 1 package com.juyun.test; 2 3 import java.net.InetAddress; 4 import java.net.UnknownHostException; 5 6 import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; 7 import org.elasticsearch.action.admin.indices.create.CreateInd

Elasticsearch5.0 Java Api(二) -- 更新索引

elasticsearch提供了多种更新索引的方式,这里简单介绍其中五种 1 package com.juyun.test; 2 3 import java.io.IOException; 4 import java.net.InetAddress; 5 import java.util.concurrent.ExecutionException; 6 7 import org.elasticsearch.action.index.IndexRequest; 8 import org.elast

Elasticsearch5.0 Java Api(七) -- 聚合查询

测试聚合查询功能 1 package com.juyun.test; 2 3 import java.net.InetAddress; 4 import java.util.List; 5 6 import org.elasticsearch.action.search.SearchResponse; 7 import org.elasticsearch.client.Client; 8 import org.elasticsearch.common.settings.Settings; 9 i

Elasticsearch5.0 Java Api(八) -- 常用DSL查询

测试常用的DSL组合查询功能 1 package com.juyun.test; 2 3 import java.net.InetAddress; 4 5 import org.elasticsearch.action.search.SearchResponse; 6 import org.elasticsearch.client.Client; 7 import org.elasticsearch.common.settings.Settings; 8 import org.elasticse

elasticsearch-5.x JAVA API(002)

elasticsearch-5.x JAVA API 第二部分:集群健康与段合并 1. 集群健康 首先定义一个类来存储集群健康信息 package com.zw.elasticsearch.cluster; public class ClusterHealth { // 集群名 private String clusterName; // 集群中节点数目 private int number_of_node; // 活跃总分片数目 private int number_of_activeShar

java实现文件批量导入导出实例(兼容xls,xlsx)

1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出.另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了. 2.POI使用详解 2.1 什么是Apache POI? Apache POI是Apache软件基金会的开放源码函式库,