Elasticsearch简单使用系列--使用Java API进行CRUD操作
来源:互联网 发布:win10如何更新软件 编辑:程序博客网 时间:2024/05/26 22:07
1.简单介绍Elasticsearch和RDBMS对应的关系,便于记忆理解
2.封装一个获取client的工具类
/** * @author lcj * @version 1.0 * @description 获取client * @Create 2017-06-19 */public class TransportClientUtil { public static TransportClient getTransportClient(){ Settings settings = Settings.builder() .put("cluster.name","es-cluster") //设置集群的名字,默认是elasticsearch .put("client.transport.sniff",true) //启用监听器,每5秒刷新一次nodes .build(); TransportClient client = null; try { client = new PreBuiltTransportClient(settings) //设置node //.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(System.getenv("COMPUTERNAME")),9300)); .addTransportAddress(new InetSocketTransportAddress(InetAddress.getLocalHost(),9300)); } catch (UnknownHostException e) { e.printStackTrace(); } return client; }}
3.使用java api进行CRUD
/** * @author lcj * @version 1.0 * @description 使用java api操作es node,进行简单的crud * @Create 2017-06-22 */public class EsJavaApi { private static final Logger LOGGER = LoggerFactory.getLogger(EsJavaApi.class); private static TransportClient client = TransportClientUtil.getTransportClient(); public static void main(String[] args) { //创建索引文档 //save(); //搜索文档 //get(); //更新文档 //update(); //删除文档 delete(); //关闭链接 client.close(); } /** * pojo bean ,创建index 文档 */ private static void save(){ Book book = new Book(); book.setName("jvm 虚拟机5"); book.setAuthor("lcj4"); book.setPublishTime(new Date().toString()); book.setPrice(512.10); book.setId("17"); ObjectMapper mapper = new ObjectMapper(); try { byte[] bytes = mapper.writeValueAsBytes(book); IndexResponse response = client.prepareIndex("book","book",book.getId()) .setSource(bytes) .get(); System.out.println(response.getResult()); //CREATED } catch (JsonProcessingException e) { e.printStackTrace(); } } /** * 根据id,搜索文档 */ private static void get(){ GetResponse response = client.prepareGet("book","book","17") .setOperationThreaded(false) //默认为true,在不同的线程执行 .get(); //{"id":"17","name":"jvm 虚拟机5","author":"lcj4","price":512.1,"publishTime":"Thu Jun 22 13:36:49 CST 2017"} System.out.println(response.getSourceAsString()); } /** * 更新文档 */ private static void update(){ UpdateRequest updateRequest = new UpdateRequest(); //指定索引 updateRequest.index("book"); //指定类型 updateRequest.type("book"); //指定id updateRequest.id("17"); Book book = new Book(); book.setName("jvm 虚拟机55"); book.setAuthor("lcj4"); book.setPublishTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); book.setPrice(512.18); book.setId("17"); ObjectMapper mapper = new ObjectMapper(); //有很多重载方法 //{"_index":"book","_type":"book","_id":"17","_version":2,"found":true,"_source":{"id":"17","name":"jvm 虚拟机55","author":"lcj4","price":512.18,"publishTime":"2017-06-22 13:45:22"}} try { updateRequest.doc(mapper.writeValueAsBytes(book)); client.update(updateRequest).get(); } catch (Exception e) { e.printStackTrace(); } } /*根据id删除文档*/ private static void delete(){ DeleteResponse response = client.prepareDelete("book","book","17") .get(); //DeleteResponse[index=book,type=book,id=17,version=3,result=deleted,shards=ShardInfo{total=2, successful=1, failures=[]}] System.out.println(response); }}
阅读全文
0 0
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- [ElasticSearch]使用 java API 进行CRUD操作
- 使用Java API对HBase进行CRUD操作
- Elasticsearch Java-API CRUD Java操作Elasticsearch
- 使用Sense操作ElasticSearch CRUD
- 使用Sense操作ElasticSearch CRUD
- 使用Elasticsearch的java api,操作elasticsearch
- 使用Sense浏览器插件操作ElasticSearch CRUD
- 使用Java Api 对HBase进行简单操作
- elasticSearch Java Api使用
- Elasticsearch简单使用系列--安装
- Elasticsearch简单使用系列--入门
- 使用MyBatis对标进行CRUD操作
- 使用Java API对HBase进行操作
- ElasticSearch Java API的使用
- Elasticsearch的Java API使用
- java操作elasticsearch使用QueryBuilders进行数据查询
- Hadoop 单节点集群配置
- windows 系统显示桌面后任务栏不见了
- [绍棠_Swift] Swift3.0中 通过viewController push跳转到TabbarController 隐藏后退按钮问题
- oracle中函数round()与函数trunc()
- 数据通信中的校验方法
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- Activiti学习之监听器
- springmvc 解析url 返回的xml数据
- 数据库索引的实现原理
- idea 的使用与快捷键
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- windows 下配置 Nginx 常见问题
- layerui弹框实例
- 手机芯战!麒麟与骁龙上演难分胜负的技术竞速赛