当前位置: 首页 > news >正文

在Java使用rest Client操作ES

1. 导入restClient依赖

  <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency>

2. 了解ES核心客户端API

核心区别对比

特性RestHighLevelClientRestClient
定位高级客户端(封装常用操作,推荐使用)底层HTTP客户端(更灵活,更复杂)
API风格面向对象(如 IndexRequestSearchRequest基于HTTP请求构建(如 RequestResponse
维护状态官方已停止维护(ES 7.15+)仍维护(但推荐迁移到新客户端)
依赖关系基于 RestClient 实现是 RestHighLevelClient 的底层依赖
适用场景快速开发标准功能需要自定义请求或访问未封装API

3. 将RestHighLevelClient注册成Bean

package com.example.demo.config;import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ElasticSearchConfig {public static final String HOST = "127.0.0.1"; // es地址public static final int PORT = 9200; // es端口/*** 创建RestClient对象* @return*/@Beanpublic RestHighLevelClient restClient() {return new RestHighLevelClient(RestClient.builder(new HttpHost(HOST, PORT)));}
}

4. 通过RestHighLevelClient 创建索引库并映射字段信息

创建包和类用于保存索引结构:constants.HotelConstants

package com.example.demo.constants;public class HotelConstants {public static final String MAPPER_TEMPLATE_USER = "{\n" +"  \"mappings\": {\n" +"    \"properties\": {\n" +"      \"id\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"doc_values\": true  \n" +"      },\n" +"      \"username\": {\n" +"        \"type\": \"text\",     \n" +"        \"analyzer\": \"ik_max_word\", \n" +"        \"fields\": {\n" +"          \"keyword\": {\n" +"            \"type\": \"keyword\"  \n" +"          }\n" +"        },\n" +"        \"copy_to\": \"combined_search\"  \n" +"      },\n" +"      \"password\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"index\": false      \n" +"      },\n" +"      \"phone\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"ignore_above\": 20  \n" +"      },\n" +"      \"create_time\": {\n" +"        \"type\": \"date\",\n" +"        \"format\": \"yyyy-MM-dd HH:mm:ss||epoch_millis\"  \n" +"      },\n" +"      \"update_time\": {\n" +"        \"type\": \"date\",\n" +"        \"format\": \"yyyy-MM-dd HH:mm:ss||epoch_millis\"\n" +"      },\n" +"      \"status\": {\n" +"        \"type\": \"integer\", \n" +"        \"null_value\": 1     \n" +"      },\n" +"      \"balance\": {\n" +"        \"type\": \"integer\",  \n" +"        \"null_value\": 0     \n" +"      },\n" +"      \"combined_search\": {  \n" +"        \"type\": \"text\",\n" +"        \"analyzer\": \"ik_smart\"\n" +"      }\n" +"    }\n" +"  },\n" +"  \"settings\": {\n" +"    \"number_of_shards\": 3,    \n" +"    \"number_of_replicas\": 1,  \n" +"    \"analysis\": {             \n" +"      \"analyzer\": {\n" +"        \"ik_smart\": {         \n" +"          \"type\": \"custom\",\n" +"          \"tokenizer\": \"ik_max_word\"\n" +"        }\n" +"      }\n" +"    }\n" +"  }\n" +"}";
}

 /*** 创建索引库*/@Testpublic void createIndex() throws IOException {// 创建请求,指定索引库名称CreateIndexRequest request = new CreateIndexRequest("user");//执行与数据库相对于的映射JSONCreateIndexRequest source = request.source(HotelConstants.MAPPER_TEMPLATE_USER, XContentType.JSON);// 发送请求//RequestOptions.DEFAULT:默认请求client.indices().create(source, RequestOptions.DEFAULT);}

执行前先确定是否删除user索引库,客户端查询一下如果为空就是删除了

#
GET /user#
DELETE /user

运行测试方法后再次查询

相关文章:

  • 软件设计模式
  • vue+vite 减缓首屏加载压力和性能优化
  • dea如何使用git
  • python程序打包——nuitka使用
  • 「数据可视化 D3系列」入门第三章:深入理解 Update-Enter-Exit 模式
  • Redis - 讲清楚集群模式(Redis Cluster)(上)
  • C++ 创龙UDP通讯demo
  • 如何在vue3项目中使用 AbortController取消axios请求
  • UWB技术与5G、物联网结合的应用前景
  • c# 根据圆面积计算最大芯片数量
  • Java虚拟机面试题:类加载机制
  • 【grafana原生告警中心配置飞书机器人告警】
  • 微信小程序-自定义toast
  • 最近准备写个Playbook,详细点的指导手册,作为后续的销售培训文件,也趁着这个机会整理下产品思路,尤其是对于UALink,UEC新的联盟规范的测试用例
  • 深入剖析 FastAdmin 权限验证体系:与 UserRule 表的紧密关联及最佳实践
  • 智能合约安全审计平台——可视化智能合约漏洞扫描
  • *差分自回归移动平均模型(ARIMA)
  • # 从零开发小红书风格Flutter应用:图片上传功能实现踩坑记录
  • Spark-SQL2
  • OpenCV中的轮廓近似方法详解
  • 是否有中国公民受印巴冲突影响?外交部:建议中国公民避免前往冲突涉及地点
  • 中国医药科技出版社回应发布“男性患子宫肌瘤”论文:正在核查
  • “五一”假期国内出游3.14亿人次,同比增长6.4%
  • 科普|治疗腰椎间盘突出症,筋骨平衡理论如何提供新视角?
  • 蓝佛安主持东盟与中日韩财长和央行行长系列会议并举行多场双边会见
  • 深入景区、文化街区及消费一线,多地省委书记调研文旅市场