es之java操作插入文档
4方式:
- 、 使用json字符串直接创建
- 、 使用Map集合
- 、 使用第三方库来序列化 createDocumentBySerialize
- 、 使用内置的帮助器XContentFactory.jsonBuilder()
1: 使用JSON字符串创建
- @Test
- public void createDocumentByManually(){
- String json = "{" +
- "\"user\":\"kimchy\"," +
- "\"postDate\":\"2013-01-30\"," +
- "\"message\":\"trying out Elasticsearch\"" +
- "}";
- //IndexRequestBuilder prepareIndex(String index, String type)
- final IndexResponse response = this.transportClient.prepareIndex("twitter", "tweet")
- .setSource(json, XContentType.JSON).get();
- //获取索引
- final String _index = response.getIndex();
- //获取类型
- final String _type = response.getType();
- // 文档ID
- String _id = response.getId();
- // 版本
- long _version = response.getVersion();
- // 返回的操作状态
- RestStatus status = response.status();
- System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
- }
2:使用Map集合
- @Test
- public void createDocumentByMap(){
- Map<String, Object> json = new HashMap<String, Object>();
- json.put("user","kimchy");
- json.put("postDate",new Date());
- json.put("message","trying out Elasticsearch");
- //this.transportClient.prepareIndex 可以传入id
- final IndexResponse response = this.transportClient.prepareIndex("twitter", "tweet")
- .setSource(json, XContentType.JSON).get();
- //获取索引
- final String _index = response.getIndex();
- //获取类型
- final String _type = response.getType();
- // 文档ID
- String _id = response.getId();
- // 版本
- long _version = response.getVersion();
- // 返回的操作状态
- RestStatus status = response.status();
- System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
- }
3:使用第三方库来序列化
- /**
- *这种方式是使用jsckson来序列化一个bean的方式进行操作的
- * import com.fasterxml.jackson.databind.*;
- * */
- @Test
- public void createDocumentBySerialize(){
- try {
- // insstance a json mapper
- ObjectMapper mapper = new ObjectMapper(); // create once, reuse
- //构造一个类
- Person p = new Person();
- p.setUser("kimchy");
- p.setPostDate(new Date());
- p.setMessage("trying out Elasticsearch");
- // generate json
- byte[] json = mapper.writeValueAsBytes(p);
- IndexResponse response = this.client.prepareIndex("twitter3", "tweet")
- .setSource(json, XContentType.JSON)
- .get();
- // 索引名称
- String _index = response.getIndex();
- // 类型
- String _type = response.getType();
- // 文档ID
- String _id = response.getId();
- // 版本
- long _version = response.getVersion();
- // 返回的操作状态
- RestStatus status = response.status();
- System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- }
4:使用内置的帮助器jsonBuilder()
- @Test
- public void createDocumentByJsonBuilder(){
- XContentBuilder builder = null;
- try {
- builder = jsonBuilder()
- .startObject()
- .field("user", "kimchy")
- .field("postDate", new Date())
- .field("message", "trying out Elasticsearch")
- .endObject();
- String json = builder.string();
- IndexResponse response = this.client.prepareIndex("twitter4", "tweet")
- .setSource(json, XContentType.JSON)
- .get();
- // 索引名称
- String _index = response.getIndex();
- // 类型
- String _type = response.getType();
- // 文档ID
- String _id = response.getId();
- // 版本
- long _version = response.getVersion();
- // 返回的操作状态
- RestStatus status = response.status();
- System.out.println("索引名称:"+_index+" "+"类型 :" + _type + " 文档ID:"+_id+" 版本 :"+_version+" 返回的操作状态:"+status);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
去elasticsearch的head页面查看:
es之java操作插入文档的更多相关文章
- Java操作Wrod文档的工具类
需要有jacob的jar包支持 import java.util.Iterator; import java.util.List; import java.util.HashMap; import c ...
- Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包
可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...
- java操作csv文档通用工具类
https://blog.csdn.net/rodge_rom/article/details/78898015 另: 参考该博主的关于FTP, EXCEL, WORD, 等工具类文章...
- Java文件操作系列[3]——使用jacob操作word文档
Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...
- ES入门三部曲:索引操作,映射操作,文档操作
ES入门三部曲:索引操作,映射操作,文档操作 一.索引操作 1.创建索引库 #语法 PUT /索引名称 { "settings": { "属性名": " ...
- C#操作Word文档(加密、解密、对应书签插入分页符)
原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...
- iText操作word文档总结
操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...
- 整理关于Java进行word文档的数据动态数据填充
首先我们看下,别人整理的关于Java生成doc 的 资料. java生成word的几种方案 1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用 ...
- Elasticsearch操作Document文档
1.利用客户端操作Document文档数据 1.1 创建一个文档(创建数据的过程,向表中去添加数据) 请求方式:Post 请求地址:es所在IP:9200/索 ...
随机推荐
- uwsgi + nginx 部署python项目(二)
实现负载均衡 开启两个服务器,nginx负责分发请求到两个服务器,以减轻单个服务器负担. 配置uwsgi服务器 在a项目目录下生成uwsgi.ini文件,在b项目目录下生成uwsgi.ini文件,如何 ...
- Redis-集群操作
一.查看集群状态 1.查看集群状态 /opt/redis/src/redis-cli -h 本机IP -p redsi实例端口 -c #连接redis实例 /opt/redis/src/redis-c ...
- urllib库认证,代理,cookie
认证,代理,cookie 1from urllib.request import HTTPBasicAuthHandler, HTTPPasswordMgrWithDefaultRealm, buil ...
- 这款多线程中间件,吊打 Redis!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 今天给大家介绍的是KeyDB,KeyDB项目是从redis fork出来的分支.众所周知redis是一个单线程的kv内存存储 ...
- 《剑指offer》面试题24 二叉搜索树的后序遍历序列 Java版
(判断一个元素均不相同的序列是否为一个BST的LRD) 书中方法:首先对于二叉搜索树,左子树中的所有元素小于根节点小于右子树中的所有元素,然后后序遍历序列最后一个元素是根节点,这是我们已知的条件.这道 ...
- 洛谷P3366【模板】最小生成树-克鲁斯卡尔Kruskal算法详解附赠习题
链接 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M&l ...
- while循环和字符串格式化
小知识点 \n#换行 \t #制表 \r #回车 print(a,b,c,d,sep="\n")换行 sep默认空格 1.while--关键字(死循环) while 空格 条件: ...
- python中django中间件
一.中间件 所谓的中间件,就是存在socket和视图函数中间的一种相当于过滤的机构. 中间件共分为: (1)process_request(self,request) (2)process_view( ...
- 最长公共子序列(LCS) Medium1
In a few months the European Currency Union will become a reality. However, to join the club, the Ma ...
- 区块链开源实现hyperledger fabric架构详解
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...