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”}