elasticsearch批量索引数据

接触solr不久发现与其同级别的elasticsearch最近很火,自己安装测试后,感觉比solr好用,至少不像solr那么多配置(初级认识)。接触elasticsearch就不得不研究建索引的问题,现在各方面的数据量都在不断增长,所以对elasticsearch批量索引,是很有用的。
以下批量索引代码:
Settings settings=ImmutableSettings.settingsBuilder()
		.put("client.transport.sniff",true).put("cluster.name","myelasticsearch").build();
//设置客户端连接transport
		Client client=new TransportClient(settings).addTransportAddress(
				new InetSocketTransportAddress("192.168.1.100",9300));
//建立批量提交类
BulkRequestBuilder bulkRequest=client.prepareBulk();
				while(rs.next()){
//建立批量json对象
					bulkRequest.add(client.prepareIndex("ryxx","tweet",rs.getString("id")).setSource(jsonBuilder().startObject()
														.field("name",rs.getString("name"))
							.field("age",rs.getString("age"))
							.field("address",rs.getString("address"))
							.field("phone",rs.getString("phone"))
							.endObject()
					));
				}
//批量提交到服务器
				BulkResponse bulkResponse=bulkRequest.execute().actionGet();
//提交过程是否产生错误
				if(bulkResponse.hasFailures()){
					System.out.println(bulkResponse.buildFailureMessage());
					
				}

提交数据的速度跟查询数据库的速度、机器配置等有关,如果是集群的话还跟网络带宽相关。另外我设置:index.number_of_shards:5 即5个分片 index.number_of_replics:1 即每个分片有一份备份

猜你喜欢

转载自gxq926.iteye.com/blog/1832777