• ES写数据的基本程序


      1 package com.znv.elasticsearch;
      2 
      3 import org.elasticsearch.action.bulk.BulkRequestBuilder;
      4 import org.elasticsearch.action.bulk.BulkResponse;
      5 import org.elasticsearch.client.transport.TransportClient;
      6 import org.elasticsearch.common.settings.Settings;
      7 import org.elasticsearch.common.transport.InetSocketTransportAddress;
      8 import org.elasticsearch.transport.client.PreBuiltTransportClient;
      9 
     10 import java.net.InetAddress;
     11 import java.net.UnknownHostException;
     12 import java.text.SimpleDateFormat;
     13 import java.util.Date;
     14 import java.util.Random;
     15 
     16 import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
     17 
     18 
     19 public class esTestData {
     20     private static TransportClient client = null;
     21     private static Random rnd = new Random();
     22     private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     23     private static final String startDate = "2017-01-01 00:00:00";
     24 
     25 
     26     private static long randomNum(long begin, long end)
     27     {
     28         long rtn = begin + (long)(Math.random() * (end - begin));
     29         if (rtn == begin || rtn == end)
     30         {
     31             return randomNum(begin,end);
     32         }
     33         return rtn;
     34     } 
     35    public  static Date randomDate(String beginDate, String endDate)
     36     {
     37         try
     38         {
     39             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     40             Date start = format.parse(beginDate);
     41             Date end = format.parse(endDate);
     42             if (start.getTime() >= end.getTime())
     43             {
     44                 return null;
     45             }
     46             long date = randomNum(start.getTime(),end.getTime());
     47             return new Date(date);
     48         }
     49         catch (Exception e)
     50         {
     51             e.printStackTrace();
     52         }
     53         return null;
     54     }
     55  
     56   public static void initClient() {
     57         try {
     58             // on startup
     59             Settings settings = Settings.builder()
     60                     .put("cluster.name", "lv08-elasticsearch").build();
     61             client = new PreBuiltTransportClient(settings)
     62                     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.45.157.130"), 9300));
     63         } catch (UnknownHostException e) {
     64             e.printStackTrace();
     65         }
     66     }
     67 
     68     public static void closeClient() {
     69         client.close();
     70     }
     71 
     72  public static void bulkPutEs() {
     73         try {
     74 
     75             long t1 = System.currentTimeMillis();
     76             int n = 0;
     77             //写入10*1000条数据
     78             while (n++ < 10) {
     79                 BulkRequestBuilder bulkRequest = client.prepareBulk();
     80                 for (int i = 0; i < 1000; i++) {
     81                     int id = rnd.nextInt(1000);
     82                     String name = "名字" + id;
     83                     int gender = rnd.nextInt(2);
     84                     int age = rnd.nextInt(100);
     85                     Date enter_time = randomDate(startDate,df.format(new Date()));
     86                     bulkRequest.add(client.prepareIndex("test-total", "type1", String.valueOf(id)+String.valueOf(enter_time.getTime()))
     87                             .setSource(jsonBuilder()
     88                                             .startObject()
     89                                             .field("id", id)
     90                                             .field("name",name)
     91                                             .field("gender",gender)
     92                                             .field("age", age)
     93                                             .field("enter_time", enter_time)
     94                                             .endObject()
     95                             )
     96                     );
     97                 }
     98                BulkResponse bulkResponse = bulkRequest.get();
     99                 if (bulkResponse.hasFailures()) {
    100                     // process failures by iterating through each bulk response item
    101                     System.out.println(bulkRequest.toString());
    102                 }
    103             }
    104 
    105             long ts = System.currentTimeMillis() - t1;
    106             System.out.println("cost "+ts +" ms.");
    107 
    108         } catch (Exception e) {
    109             e.printStackTrace();
    110         }
    111     }
    112 
    113 public static void main(String []args) { 114 initClient(); 115 bulkPutEs(); 116 closeClient(); 117 } 118 119 }
  • 相关阅读:
    4.22 每日一题题解
    4.21 每日一题题解
    4.20 每日一题题解
    【HDU2825】Wireless Password【AC自动机,状态压缩DP】
    【POJ2778】DNA Sequence 【AC自动机,dp,矩阵快速幂】
    【ZOJ 3228】Searching the String 【AC自动机】
    【LA5135 训练指南】井下矿工 【双连通分量】
    【LA3523 训练指南】圆桌骑士 【双连通分量】
    【LA3713 训练指南】宇航员分组 【2-sat】
    【LA3211 训练指南】飞机调度 【2-sat】
  • 原文地址:https://www.cnblogs.com/zling/p/10402231.html
Copyright © 2020-2023  润新知