zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/zling/p/10402231.html
Copyright © 2011-2022 走看看