4方式:

  1. 使用json字符串直接创建
  2. 使用Map集合
  3. 使用第三方库来序列化 createDocumentBySerialize
  4. 使用内置的帮助器XContentFactory.jsonBuilder()

1: 使用JSON字符串创建

  1. @Test
  2. public void createDocumentByManually(){
  3. String json = "{" +
  4. "\"user\":\"kimchy\"," +
  5. "\"postDate\":\"2013-01-30\"," +
  6. "\"message\":\"trying out Elasticsearch\"" +
  7. "}";
  8. //IndexRequestBuilder prepareIndex(String index, String type)
  9. final IndexResponse response = this.transportClient.prepareIndex("twitter", "tweet")
  10. .setSource(json, XContentType.JSON).get();
  11. //获取索引
  12. final String _index = response.getIndex();
  13. //获取类型
  14. final String _type = response.getType();
  15. // 文档ID
  16. String _id = response.getId();
  17. // 版本
  18. long _version = response.getVersion();
  19. // 返回的操作状态
  20. RestStatus status = response.status();
  21. System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
  22.  
  23. }

2:使用Map集合

  1. @Test
  2. public void createDocumentByMap(){
  3. Map<String, Object> json = new HashMap<String, Object>();
  4. json.put("user","kimchy");
  5. json.put("postDate",new Date());
  6. json.put("message","trying out Elasticsearch");
  7. //this.transportClient.prepareIndex 可以传入id
  8. final IndexResponse response = this.transportClient.prepareIndex("twitter", "tweet")
  9. .setSource(json, XContentType.JSON).get();
  10. //获取索引
  11. final String _index = response.getIndex();
  12. //获取类型
  13. final String _type = response.getType();
  14. // 文档ID
  15. String _id = response.getId();
  16. // 版本
  17. long _version = response.getVersion();
  18. // 返回的操作状态
  19. RestStatus status = response.status();
  20. System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
  21. }

3:使用第三方库来序列化

  1. /**
  2. *这种方式是使用jsckson来序列化一个bean的方式进行操作的
  3. * import com.fasterxml.jackson.databind.*;
  4. * */
  5.  
  6. @Test
  7. public void createDocumentBySerialize(){
  8.  
  9. try {
  10. // insstance a json mapper
  11. ObjectMapper mapper = new ObjectMapper(); // create once, reuse
  12. //构造一个类
  13. Person p = new Person();
  14. p.setUser("kimchy");
  15. p.setPostDate(new Date());
  16. p.setMessage("trying out Elasticsearch");
  17. // generate json
  18. byte[] json = mapper.writeValueAsBytes(p);
  19. IndexResponse response = this.client.prepareIndex("twitter3", "tweet")
  20. .setSource(json, XContentType.JSON)
  21. .get();
  22. // 索引名称
  23. String _index = response.getIndex();
  24. // 类型
  25. String _type = response.getType();
  26. // 文档ID
  27. String _id = response.getId();
  28. // 版本
  29. long _version = response.getVersion();
  30. // 返回的操作状态
  31. RestStatus status = response.status();
  32. System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
  33.  
  34. } catch (JsonProcessingException e) {
  35. e.printStackTrace();
  36. }
  37. }

4:使用内置的帮助器jsonBuilder()

  1. @Test
  2. public void createDocumentByJsonBuilder(){
  3. XContentBuilder builder = null;
  4. try {
  5. builder = jsonBuilder()
  6. .startObject()
  7. .field("user", "kimchy")
  8. .field("postDate", new Date())
  9. .field("message", "trying out Elasticsearch")
  10. .endObject();
  11. String json = builder.string();
  12. IndexResponse response = this.client.prepareIndex("twitter4", "tweet")
  13. .setSource(json, XContentType.JSON)
  14. .get();
  15. // 索引名称
  16. String _index = response.getIndex();
  17. // 类型
  18. String _type = response.getType();
  19. // 文档ID
  20. String _id = response.getId();
  21. // 版本
  22. long _version = response.getVersion();
  23. // 返回的操作状态
  24. RestStatus status = response.status();
  25. System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
  26.  
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. }
  30.  
  31. }

去elasticsearch的head页面查看:

es之java操作插入文档的更多相关文章

  1. Java操作Wrod文档的工具类

    需要有jacob的jar包支持 import java.util.Iterator; import java.util.List; import java.util.HashMap; import c ...

  2. Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包

    可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...

  3. java操作csv文档通用工具类

    https://blog.csdn.net/rodge_rom/article/details/78898015 另: 参考该博主的关于FTP, EXCEL, WORD, 等工具类文章...

  4. Java文件操作系列[3]——使用jacob操作word文档

    Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...

  5. ES入门三部曲:索引操作,映射操作,文档操作

    ES入门三部曲:索引操作,映射操作,文档操作 一.索引操作 1.创建索引库 #语法 PUT /索引名称 { "settings": { "属性名": " ...

  6. C#操作Word文档(加密、解密、对应书签插入分页符)

    原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...

  7. iText操作word文档总结

    操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...

  8. 整理关于Java进行word文档的数据动态数据填充

    首先我们看下,别人整理的关于Java生成doc 的 资料. java生成word的几种方案 1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用 ...

  9. Elasticsearch操作Document文档

    1.利用客户端操作Document文档数据        1.1 创建一个文档(创建数据的过程,向表中去添加数据)            请求方式:Post    请求地址:es所在IP:9200/索 ...

随机推荐

  1. uwsgi + nginx 部署python项目(二)

    实现负载均衡 开启两个服务器,nginx负责分发请求到两个服务器,以减轻单个服务器负担. 配置uwsgi服务器 在a项目目录下生成uwsgi.ini文件,在b项目目录下生成uwsgi.ini文件,如何 ...

  2. Redis-集群操作

    一.查看集群状态 1.查看集群状态 /opt/redis/src/redis-cli -h 本机IP -p redsi实例端口 -c #连接redis实例 /opt/redis/src/redis-c ...

  3. urllib库认证,代理,cookie

    认证,代理,cookie 1from urllib.request import HTTPBasicAuthHandler, HTTPPasswordMgrWithDefaultRealm, buil ...

  4. 这款多线程中间件,吊打 Redis!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 今天给大家介绍的是KeyDB,KeyDB项目是从redis fork出来的分支.众所周知redis是一个单线程的kv内存存储 ...

  5. 《剑指offer》面试题24 二叉搜索树的后序遍历序列 Java版

    (判断一个元素均不相同的序列是否为一个BST的LRD) 书中方法:首先对于二叉搜索树,左子树中的所有元素小于根节点小于右子树中的所有元素,然后后序遍历序列最后一个元素是根节点,这是我们已知的条件.这道 ...

  6. 洛谷P3366【模板】最小生成树-克鲁斯卡尔Kruskal算法详解附赠习题

    链接 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M&l ...

  7. while循环和字符串格式化

    小知识点 \n#换行 \t #制表 \r #回车 print(a,b,c,d,sep="\n")换行 sep默认空格 1.while--关键字(死循环) while 空格 条件: ...

  8. python中django中间件

    一.中间件 所谓的中间件,就是存在socket和视图函数中间的一种相当于过滤的机构. 中间件共分为: (1)process_request(self,request) (2)process_view( ...

  9. 最长公共子序列(LCS) Medium1

    In a few months the European Currency Union will become a reality. However, to join the club, the Ma ...

  10. 区块链开源实现hyperledger fabric架构详解

    hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...