1.导入 maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-dataelasticsearch</artifactId> <dependency>
注意 保持版本一致 我用的是7.6.2版本的
<properties> <java.version>1.8</java.version> <elasticsearch.version>7.6.2</elasticsearch.version> <!--自定义版本 保持版本一致--> </properties>
2.编写config类 相当于 xlm导入文档
@Configuration public class ESConfig { @Bean public RestHighLevelClient restHighLevelClient (){ RestHighLevelClient restHighLevelClient = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost",9100,"http") ) ); return restHighLevelClient; }
注意这里的端口号 一定不能搞错
3测试书写 添加 索引
@Test void contextLoads() throws IOException { //1.创建索引的请求 CreateIndexRequest createIndexRequest = new CreateIndexRequest("mao"); //2.执行请求 获得响应 CreateIndexResponse createIndexResponse = estHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT); System.out.println(createIndexResponse); }
4.查询索引是否存在
@Test //查询索引是否存在 void existIndex() throws IOException { GetIndexRequest getIndexRequest = new GetIndexRequest("test"); //获得索引请求 boolean exists = estHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT); System.out.println(exists); }
5.删除索引
@Test//删除 void delIndex() throws IOException { DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("test"); AcknowledgedResponse delete = estHighLevelClient.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT); System.out.println(delete); System.out.println(delete.isAcknowledged()); }
6.添加文档数据 第一 要设置实体类 导入阿里巴巴JSON 工具类
@Data @Accessors(chain = true) //实体类 public class User { private String name; private String age; }
@Test //添加文档 void addDocument() throws IOException { //创建对象啊 User user = new User().setAge("13").setName("mao"); //创建请求 IndexRequest request = new IndexRequest("mao"); //设置规则 PUT /test/_doc/id request.id("1"); request.timeout("1s"); //将请求放入josn request.source(JSON.toJSONString(user),XContentType.JSON); //客户端发送请求 <span>本文来源gaodai#ma#com搞*!代#%^码$网*</span> IndexResponse index = estHighLevelClient.index(request, RequestOptions.DEFAULT); //获取响应结果 System.out.println(index.toString()); System.out.println(index.status());
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
7.修改文档
@Test //Update 文档操作 void GengXin() throws IOException { UpdateRequest updateRequest = new UpdateRequest("mao","1"); //请求更新文档 updateRequest.timeout("1s"); //设置超时时间 User user= new User().setName("张三").setAge("26"); updateRequest.doc(JSON.toJSONString(user),XContentType.JSON); //将对象封装丢进去 XContentType方法 将要传输的数据进行告知 UpdateResponse update = estHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);//发送请求 System.out.println(update); }