elasticsearch java API------批量添加索引

标签: elasticsearch java api | 发表时间:2014-10-08 08:54 | 作者:aoyouzi
出处:http://www.iteye.com

elasticsearch java API------批量添加索引

 

 

1.

public void bulkupdate(){

 
BulkRequestBuilder bulkRequest = client.prepareBulk(); 
 
try {
bulkRequest.add(client.prepareIndex("productindex", "productindex", "2") 
       .setSource(XContentFactory.jsonBuilder() 
                   .startObject() 
                       .field("user", "kimchy2") 
                       .field("postDate", new Date()) 
                       .field("message", "trying out Elastic Search") 
                   .endObject() 
                 ) 
       );
bulkRequest.add(client.prepareIndex("productindex", "productindex", "3") 
       .setSource(XContentFactory.jsonBuilder() 
                   .startObject() 
                       .field("user", "kimchy3") 
                       .field("postDate", new Date()) 
                       .field("message", "another post") 
                   .endObject() 
                 ) 
       ); 
        
BulkResponse bulkResponse = bulkRequest.execute().actionGet(); 
if (bulkResponse.hasFailures()) { 
   //处理错误 

}

bulkRequest.request().requests().clear();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

 

}

2.

 

[java]  view plain copy
 
 
  1. public void testBulkIndex() throws Exception {  
  2.   
  3.     NodeBuilder builder = NodeBuilder.nodeBuilder();  
  4.     String clusterName = PropertyManager.getContextProperty("cluster.name");  
  5.     builder.clusterName(clusterName);  
  6.     Node node = builder.node();  
  7.     Client client = node.client();  
  8.   
  9.     ObjectMapper mapper = new ObjectMapper();  
  10.   
  11.     List<Person> persons = new ArrayList<Person>();  
  12.   
  13.     List<IndexRequest> requests = new ArrayList<IndexRequest>();  
  14.   
  15.     for (int i = 0; i < 10; i++) {  
  16.         Person person = new Person();  
  17.         person.setAge(20 + i);  
  18.         person.setId(UUID.randomUUID().toString());  
  19.         person.setIsStudent(true);  
  20.         person.setName("张三" + i);  
  21.         person.setSex("男");  
  22.         persons.add(person);  
  23.   
  24.         String index = "user"; // 相当于数据库名  
  25.         String type = "tb_person"; // 相当于表名  
  26.   
  27.         String json = mapper.writeValueAsString(person);  
  28.   
  29.         IndexRequest request = client  
  30.                 .prepareIndex(index, type, person.getId()).setSource(json)  
  31.                 .request();  
  32.   
  33.         requests.add(request);  
  34.     }  
  35.   
  36.     BulkRequestBuilder bulkRequest = client.prepareBulk();  
  37.   
  38.     for (IndexRequest request : requests) {  
  39.         bulkRequest.add(request);  
  40.     }  
  41.   
  42.     BulkResponse bulkResponse = bulkRequest.execute().actionGet();  
  43.     if (bulkResponse.hasFailures()) {  
  44.         Assert.fail("批量创建索引错误!");  
  45.     }  
  46. }  


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [elasticsearch java api] 推荐:

elasticsearch java API------批量添加索引

- - 行业应用 - ITeye博客
elasticsearch java API------批量添加索引.         person.setName("张三" + i);  .         person.setSex("男");  .         String index = "user"; // 相当于数据库名  .         String type = "tb_person"; // 相当于表名  .

ElasticSearch聚合分析API

- - 大涌日志|智能金融唠叨
说完了ES的索引与检索,接着再介绍一个ES高级功能API – 聚合(Aggregations),聚合功能为ES注入了统计分析的血统,使用户在面对大数据提取统计指标时变得游刃有余. 同样的工作,你在hadoop中可能需要写mapreduce或hive,在mongo中你必须得用大段的mapreduce脚本,而在ES中仅仅调用一个API就能实现了.

Java API 设计清单 « 友好的API

- - 东西
在设计Java API的时候总是有很多不同的规范和考量. 与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度. 就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范. 本文也可以看作为“ API设计指南”这篇文章的附录. 我们还准备了一些前后比对的例子来展示这个列表如何帮助你理清设计需求,找出错误,识别糟糕的设计实践以及如何寻找改进的时机.

Java的日期API真烂

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 记得在我刚学Java的时候,真是搞不清楚Date和Calendar这两个类,后来我渐渐知道,原来不能全怪我啊,Java日期API之烂是公认的(不妨参见 这篇文章,Tiago Fernandez做过一个投票,就是要选举最烂的Java API,结果Java日期API排行第二,仅次于臭名远扬的EJB2,嘿嘿).

rabbitmq java client api详解

- - 五四陈科学院
以下内容由 [五四陈科学院]提供. AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现. 每个rabbitmq-server叫做一个Broker,等着tcp连接进入. 在rabbitmq-server进程内有Exchange,定义了这个消息的发送类型. Queue是进程内的逻辑队列,有多个,有名字.

Elasticsearch使用REST API实现全文检索

- - zzm
通过rest api添加检索数据,阅读官方文档可以发现,elasticsearch支持动态映射,但是其中有不少问题,且听慢慢详解. 1 Elasticsearch常用的rest api. 2 Elasticsearch使用bulk命令添加索引数据.   elasticsearch支持通过http请求响应服务,因此通过curl命令,可以发送http请求,并得到json返回内容.

ElasticSearch-2.0.0集群安装配置与API使用实践

- - 简单之美
ElasticSearch是基于全文搜索引擎库Lucene构建的分布式搜索引擎,我们可以直接使用ElasticSearch实现分布式搜索系统的搭建与使用,都知道,Lucene只是一个搜索框架,它提供了搜索引擎操作的基本API,如果要实现一个能够使用的搜索引擎系统,还需要自己基于Lucene的API去实现,工作量很大,而且还需要很好地掌握Lucene的底层实现原理.

ElasticSearch的JAVA客户端操作

- - 编程语言 - ITeye博客
一、java操作ES有两种客户端:. 1、TransportClient:轻量级的Client,使用Netty线程池,Socket连接到ES集群. 本身不加入到集群,只作为请求的处理. 2、Node Client:客户端节点本身也是ES节点,加入到集群,和其他ElasticSearch节点一样. 频繁的开启和关闭这类Node Clients会在集群中产生“噪音”.

前Sun CEO:Android无需获Java API许可

- - 业界
北京时间4月27日,据国外媒体 CNET报道,前Sun首席执行官Jonathan Schwartz周四在甲骨文诉谷歌侵权案中作证时称,Java API不应被视为专利或受Sun的保护,只要谷歌不使用Java这个词. Schwartz解释开放软件的性质时表示:“这些都是开放的API,我们想让更多的人使用,我们希望建起最大的帐篷,邀请尽可能多的人来.

Java规则引擎与其API(JSR-94)

- - 行业应用 - ITeye博客
本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望. 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商 务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.