1.导入elasticsearch依赖在pom.xml中添加如下依赖>复制代码很重要:检查依赖版本是否和你当前使用的版本一致,不一致会连接失败!2.创建高级客户端。返回客户;}}复制代码三、基本用法1、创建、判断存在、删除索引importorg.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;importorg.elasticsearch.action.support.master.AcknowledgedResponse;导入org.elasticsearch.client.RequestOptions;导入org.elasticsearch.client.RestHighLevelClient;导入org.elasticsearch.client.indices.CreateIndexRequest;导入org.elasticsearch.client.indices。CreateIndexResponse;导入org.elasticsearch.client.indices.GetIndexRequest;导入org.junit.jupiter.api.Test;导入org.springframework.beans.factory.annotation.Autowired;导入org.springframework.boot.test.context.SpringBootTest;importjava.io.IOException;@SpringBootTestclassElasticsearchApplicationTests{@AutowiredprivateRestHighLevelClientrestHighLevelClient;@TestvoidtestCreateIndex()throwsIOException{//1.创建请求请求CreateIndexRequestrequest=newCreateIndexRequest("ljx666");//2.客户端执行请求IndicesClient,执行create方法创建查询,请求后获得响应CreateIndexResponseresponse=restHighLevelClient.indices().create(request,RequestOptions.DEFAULT);System.out.println(响应);}@TestvoidtestExistIndex()抛出IOException{//1。查询索引请求GetIndexRequestrequest=newGetIndexRequest("ljx666");//2。执行exists方法判断是否存在booleanexists=restHighLevelClient.indices().exists(request,Request.DEpFA);System.out.println(存在);}@TestvoidtestDeleteIndex()抛出IOException{//1。删除索引请求DeleteIndexRequestrequest=newDeleteIndexRequest("ljx666");//执行delete方法删除指定索引edAcknowledgrestHighLevelClient.indices().delete(request,RequestOptions.DEFAULT);System.out.println(delete.isAcknowledged());}}复制代码2.为文档的增删改查创建一个文档:注意:如果添加的时候没有指定文档ID,他会随机生成一个ID。如果唯一创建文档时ID已存在,则在发送文档创建请求后更新文档中的数据。@TestvoidtestAddUser()抛出IOException{//1.创建对象Useruser=newUser("Go",21,newString[]{"involute","eat"});//2。创建请求IndexRequestrequest=newIndexRequest("ljx666");//3。设置规则PUT/ljx666/_doc/1//设置文档id=6,设置timeout=1s等,不设置则使用默认//同时支持链式编程如request.id("6").timeout("1s");request.id("6");request.timeout("1s");//4。将数据放入request,并将对象转成json格式//XContentType.JSON,告诉它传递的数据是JSON类型request.source(JSONValue.toJSONString(user),XContentType.JSON);//5。客户端发送请求并得到响应结果IndexResponseindexResponse=restHighLevelClient.index(request,RequestOptions.DEFAULT);System.out.println(indexResponse.toString());System.out.println(indexResponse.status());}复制代码获取文档中的数据:@TestvoidtestGetUser()throwsIOException{//1.创建请求,指定索引,文档idGetRequestrequest=newGetRequest("ljx666","1");GetResponsegetResponse=restHighLevelClient.get(request,RequestOptions.DEFAULT);System.out.println(getResponse);//获取响应结果//getResponse.getSource()返回Map集合System.out.println(getResponse.getSourceeAsString());//获取响应结果源中的内容并转换为字符串设置为空,如Useronlysetname,则只有name修改成功,其他修改为null@TestvoidtestUpdateUser()抛出IOException{//1.创建请求,指定索引,文档idUpdateRequestrequest=newUpdateRequest("ljx666","6");Useruser=newUser("GoGo",21,newString[]{"内卷","Dining"});//将创建的对象放到文档中request.doc(JSONValue.toJSONString(user),XContentType.JSON);UpdateResponseupdateResponse=restHighLevelClient.update(request,RequestOptions.DEFAULT);System.out.println(updateResponse.status());//更新返回OK}复制代码删除文档:@TestvoidtestDeleteUser()throwsIOException{//创建删除请求,指定要删除的索引和文档IDDeleteRequestrequest=newDeleteRequest("ljx666","6");DeleteResponseupdateResponse=restHighLevelClient.delete(request,RequestOptions.DEFAULT);System.out.println(updateResponse.status());//删除成功返回OK,没有查找返回NOT_FOUND}复制代码3.批量CRUD数据这里只列出批量插入数据,其他与此类似注:hasFailures()方法返回是否失败,即当其值为false时,表示上传成功@TestvoidtestBulkAddUser()throwsIOException{BulkRequestbulkRequest=newBulkRequest();//设置超时bulkRequest.timeout("10s");ArrayList
