
文章插图
可以根据 response 获取 aliases , mappings , settings 等等 和 Kibana 中返回的一样

文章插图
5.插入文档client.index插入文档 需要使用 IndexRequest 对象 , 注意 不是 InsertRequest , 不知道为什么不这样定义 感觉会更加好理解
request.source(blogInfoJsonStr, XContentType.JSON);
@Testpublic void insertDoc() {IndexRequest request = new IndexRequest();request.index("blog1").id("1");BlogInfo blogInfo =new BlogInfo().setBlogName("Elasticsearch 入门第一章").setBlogType("Elasticsearch").setBlogDesc("本篇主要介绍了Elasticsearch 的基本client操作");try {//提供java 对象的 json strString blogInfoJsonStr = objectMapper.writeValueAsString(blogInfo);request.source(blogInfoJsonStr, XContentType.JSON);// 这里会抛错 原因是 我的 Elasticsearch 版本8.x 而 使用的 restHighLevel 已经解析不了,因为新的es已经不推荐使用// restHighLevel,而使用 Elasticsearch Java API ClientIndexResponse index = client.index(request, RequestOptions.DEFAULT);log.info("[Result insert doc :{} ]", index);} catch (IOException e) {}}
6.查询文档 client.get注意getResponse.getSourceAsString() 返回文档数据@Testpublic void testSelectDoc() {GetRequest getRequest = new GetRequest();getRequest.index("blog1").id("1");try {GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);BlogInfo blogInfo =objectMapper.readValue(getResponse.getSourceAsString(), BlogInfo.class);log.info("[get doc :{}] ", blogInfo);} catch (IOException e) {e.printStackTrace();}}

文章插图
7.删除文档 client.delete注意 删除文档 的response 也解析不了 Elasticsearch 8.x 版本
@Testpublic void testDeleteDoc() {DeleteRequest deleteRequest = new DeleteRequest();deleteRequest.index("blog1").id("1");try {// 这里也会抛错 和上面的一样DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);log.info("[delete response:{} ]", deleteResponse);} catch (IOException e) {}}
总结本篇主要介绍了 java 操作Elasticsearch 的客户端 rest-high-level-client 的基本使用 , 如果你是使用springboot 需要注意jar 冲突问题, 后续操作 Elasticsearch 客户端 逐渐变成 Elasticsearch Java API Client,不过目前大部分还是使用 rest-high-level-client欢迎大家访问 个人博客Johnny小屋欢迎关注个人公众号

文章插图
【Elasticsearch rest-high-level-client 基本操作】
推荐阅读
- Hyperf使用ElasticSearch记录
- Mysql通过Canal同步Elasticsearch
- 4 Java注解:一个真实的Elasticsearch案例
- 3 Java注解:一个真实Elasticsearch案例
- 2. 单主机 Elasticsearch 双节点或多节点集群环境部署
- JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践
- elasticsearch怎么读 search怎么读