首先我们对上一篇的代码进行优化、创建客户端连接工具

import java.net.InetAddress;
import java.net.UnknownHostException;import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;/**** ES 根据ID检索文档测试* @author yandongfa* @Date 2020年4月17日 下午6:59:13* @version V1.0*/
public class ESTools {public static final String HOST = "127.0.0.1";   //ES集群服务器IP地址public static final Integer PORT = 9300;         //集群结点之间通信端口public static final String CONF = "cluster.name"; //配置集群(默认配置、无需修改)public static final String NAME = "xxxxxxxx";     //集群名称(默认是elasticsearch) /*** 获取ElasticSearch集群客户端* @return* @throws UnknownHostException*/@SuppressWarnings("resource")public static TransportClient getTransportClient() throws UnknownHostException {Settings settings = Settings.builder().put(CONF, NAME).build();return new PreBuiltTransportClient(settings).addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));}}

1、根据ID检索文档

import java.net.UnknownHostException;import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.junit.Test;public class EsDemo {/**** 根据ID检索文档测试* @throws UnknownHostException*/@Testpublic void test1() throws UnknownHostException{//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、数据查询、book:索引名称、doc:类型名称、1:根据id=1查询GetResponse response = client.prepareGet("book", "doc", "1").execute().actionGet();//3、得到查询出的数据、返回JSON字符串System.out.println(response.getSourceAsString());//4、关闭客户端client.close();}}

2、添加文档

    /**** 添加文档* @throws Exception*/@Testpublic void test2() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、创建文档对象XContentBuilder docment = XContentFactory.jsonBuilder().startObject().field("description", "零基础开发实战课程").field("name", "spring开发").field("studymodel", 2019).endObject();//3、添加文档IndexResponse response = client.prepareIndex("book", "doc", "2").setSource(docment).get();System.out.println(response);//关闭客户端client.close();}
    /**** 添加文档方式二* @throws Exception*/@Testpublic void test11() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、构建JSON数据Map<String, Object> jsonMap = new HashMap<>();jsonMap.put("name", "spring cloud实战");jsonMap.put("description", "本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud基础入门 3.实战Spring Boot 4.注册中心eureka。");jsonMap.put("studymodel", "2020");//3、添加文档IndexResponse response = client.prepareIndex("book", "doc", "5").setSource(jsonMap).get();//4、获取响应结果DocWriteResponse.Result result = response.getResult();System.out.println(result);//关闭客户端client.close();}
当然还有JSONObject提交的方式,JSON字符串拼接属性提交方式,方法很多,总之添加文档对象数据必须是JSON格式

3、修改文档

    /**** 修改文档* @throws Exception*/@Testpublic void test3() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、创建更新内容UpdateRequest updateRequest = new UpdateRequest();updateRequest.index("book").type("doc").id("2").doc(XContentFactory.jsonBuilder().startObject().field("name", "spring开发框架").field("studymodel", 2018).endObject());//3、执行更新操作UpdateResponse updateResponse = client.update(updateRequest).get();System.out.println(updateResponse);//关闭客户端client.close();}

4、删除文档

    /**** 删除文档* @throws Exception*/@Testpublic void test4() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、根据id删除文档DeleteResponse response = client.prepareDelete("book", "doc", "2").get();System.out.println(response);//关闭客户端client.close();}

5、更新的文档存在则更新,若不存在则添加

     /**** 更新的文档存在则更新,若不存在则添加* @throws Exception*/@Testpublic void test5() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、构造要添加的文档,在更新失败的时候添加该文档XContentBuilder builder = XContentFactory.jsonBuilder().startObject().field("description", "零基础开发实战课程").field("name", "spring开发框架").field("studymodel", 2018).endObject();IndexRequest addRequest = new IndexRequest("book", "doc", "2").source(builder);//3、创建更新请求体UpdateRequest request = new UpdateRequest("book", "doc", "2").doc(XContentFactory.jsonBuilder().startObject().field("name", "spring").endObject()).upsert(builder);//4、执行更新UpdateResponse response = client.update(request).get();System.out.println(response);//关闭客户端client.close();}

6、根据id批量查询

    /**** 根据id批量查询* @throws Exception*/@Testpublic void test6() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、构造查询条件MultiGetResponse mResponse = client.prepareMultiGet().add("book", "doc", "1").add("book", "doc", "2").get();for (MultiGetItemResponse response : mResponse) {System.out.println(response.getResponse());}//关闭客户端client.close();}

7、批量增加文档

    /**** 批量添加文档* @throws Exception*/@Testpublic void test7() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、批量添加BulkRequestBuilder requestBuilder = client.prepareBulk();requestBuilder.add(client.prepareIndex("book","doc","3").setSource(XContentFactory.jsonBuilder().startObject().field("description", "java零基础开发实战课程").field("name", "java实战").field("studymodel", 2020).endObject()));requestBuilder.add(client.prepareIndex("book","doc","4").setSource(XContentFactory.jsonBuilder().startObject().field("description", "java001零基础开发实战课程").field("name", "java实战001").field("studymodel", 2020).endObject()));//3、执行批量添加BulkResponse bulkItemResponses = requestBuilder.get();System.out.println(bulkItemResponses.status());//关闭客户端client.close();}

8、查询某个索引下面的所有文档

    /**** 查询所有文档* @throws Exception*/@Testpublic void test8() throws Exception {//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、构建查询条件QueryBuilder queryBuilder = QueryBuilders.matchAllQuery();SearchResponse resp = client.prepareSearch("book").setQuery(queryBuilder).get();//3、返回结果System.out.println(resp);//关闭客户端client.close();}

Java连接Elasticsearch6.xxx CRUD篇二相关推荐

  1. Java连接Elasticsearch6.xxx 环境测试篇一

    1.首先使用本地Windows安装的ES进行环境测试 第一步:创建索引 使用postman 发送PUT请求:http://localhost:9200/索引名称 {"settings&quo ...

  2. Java连接Elasticsearch6.xxx 代码高亮显示篇四

    1.代码高亮显示 /**** 测试代码高亮显示 * @throws Exception*/@Testpublic void heightCode() throws Exception{//1.获取客户 ...

  3. Java连接Elasticsearch6.xxx 高级检索篇三

    1. termQuery:精确查询 Term Query为精确查询,在搜索时会整体匹配关键字,不再将关键字分词. /**** termQuery* @throws Exception*/@Testpu ...

  4. Java连接Redis及操作(二)

    前言 上一节我们学习了java连接Redis,并且连接Redis成功,今天博主带领大家进行简单的操作Redis.要想对Redis进行Java的操作,必须先了解Redis API(点击这里),可看到AP ...

  5. Java学习路线(进阶篇二)

    文章目录 前言 一.常用API 1.Object(祖宗类) 2.Objects(工具类-提供一些方法完成一些功能) 3.StringBuilder(不可变的字符串类) 4.Math(基本数字运算的方法 ...

  6. Java连接Memcached进行CRUD

    参考这篇博文在本机安装了Memcached 在 Java 中常用的memcached有三个: Memcached Client for Java SpyMemcached XMemcached 这里使 ...

  7. JAVA学习之路--基础篇三

    目录 关于Java中从键盘输入的语句 nextxxx().next().nextLine()的区别 语句 if和if else语句 Switch语句 for语句 while和do..while bre ...

  8. mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...

    另外附上mongodb eclipse插件地址: http://www.jumperz.net/update/ import java.net.UnknownHostException;import ...

  9. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

最新文章

  1. Sciences:用膳食纤维钓出15株缓解糖尿病的细菌!
  2. 爸爸和无我编程十条诫律
  3. rref--计算行阶梯矩阵
  4. java log 配置,java日志系统--log4j配置解析过程,源码分析
  5. Spring注意事项(各部分理解)
  6. Qt Creator设置3D组件属性
  7. 【杂题集】单题小总结
  8. DB2数据库常用基本操作命令
  9. java speex回声消除_android 利用speex 音频降噪,回声消除demo
  10. video视频播放中trank标签字幕显示问题
  11. 排序:ORDER BY
  12. 说话就是生产力-孙路弘讲课笔记
  13. hahabet05-com:大数据与数据科学课程体系--哈哈电竞
  14. ZZULIOJ1166: 实数取整(指针专题)
  15. PVM58N-YY1AGR0BN-1213光电采样编码器
  16. Threejs实现全景图功能
  17. 57闭环步进电机57闭环步进电机方案57步进电机42 自己做的闭环驱动器,驱动器是全新的
  18. 为什么字库取模软件的取模只有人家的一半?
  19. 7-2 jmu-python-最佳身高 (10分) Python
  20. ESP8266-12 wifi芯片使用教程1——串口输出Hello world

热门文章

  1. python1乘到10_python写一个循环1+到10打印计算步骤的脚本——纯粹无聊玩的
  2. 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树
  3. 信息学奥赛一本通 1017:浮点型数据类型存储空间大小 | OpenJudge NOI 1.2 02
  4. 线性代数 —— 矩阵快速幂
  5. 动态规划 —— 区间 DP —— 石子合并三讲
  6. 暑期训练日志----2018.8.9
  7. 亲戚(信息学奥赛一本通-T1346)
  8. 珍珠(信息学奥赛一本通-T1384)
  9. 活动选择(信息学奥赛一本通-T1323)
  10. 小玉家的电费(洛谷-P1422)