elasticsearch bulk 批量加載索引的實例

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;

import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

public class ElasticSearchBulkIn {

//java -jar shuzilmJob-1.0-SNAPSHOT-jar-with-dependencies.jar ElasticSearchBulkIn
public static void main(String[] args) {
    try {

        Settings setting = Settings.builder().put("cluster.name", "du-es").build();
        TransportClient client = new PreBuiltTransportClient(setting)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("du-es-1"), 9311));
        //Add transport addresses and do something with the client...

        File article = new File("/home/srvadmin/lw/data/bulk.txt");
        FileReader fr = new FileReader(article);
        BufferedReader bfr = new BufferedReader(fr);
        String line = null;
        BulkRequestBuilder bulkRequest = client.prepareBulk();

        int count = 0;
        while ((line = bfr.readLine()) != null) {
            bulkRequest.add(client.prepareIndex("cell_geo_index", "bds_cell_geo_m").setSource(line));
            count++;
            if (count % 100 == 0) {
                bulkRequest.execute().actionGet();
                bulkRequest.request().requests().clear();
                System.out.println(count);
            }
        }
        bulkRequest.execute().actionGet();

        bfr.close();
        fr.close();
        client.close();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

索引的創建:
curl -XPUT ip:9211/cell_geo_index -d ‘{
“settings”: {
“number_of_shards” : 10,
“number_of_replicas” : 0
},
“mappings” : {
“bds_cell_geo_m” : {
“dynamic” : true,
“properties” : {
“cell_id” : {
“type” : “string”,
“index”: “not_analyzed”
},
“lac_id”:{
“type” : “string”,
“index”: “not_analyzed”
},
“opt_id” : {
“type” : “string”,
“index”: “not_analyzed”
},
“lng_center” : {
“type” : “string”,
“index”: “not_analyzed”
},
“lat_center” : {
“type” : “string”,
“index”: “not_analyzed”
}
}
}
}
}’
加載的文件bulk.txt具體內容如下:
{“cell_id”:”20833037”,”lac_id”:”4394”,”opt_id”:”46000”,”lng_center”:”116.573174”,”lat_center”:”39.861816”}
{“cell_id”:”3449199”,”lac_id”:”4134”,”opt_id”:”46000”,”lng_center”:”116.418603”,”lat_center”:”40.068716”}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章