安装
在官网上下载elasticsearch压缩包,这里是使用的是7.8.0版本的,使用的环境是windows系统.
官网:[https://www.elastic.co/cn/elasticsearch/]
解压缩之后直接启动即可(bin目录下的elasticsearch.bat)
浏览器输入localhost:1001(我这里设置的端口号是1001,可以在config/yml配置文件中修改,默认端口是9200
新建springBoot项目
添加依赖
<!-- es配置开始-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.8.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.8.0</version>
</dependency>
<!-- es配置结束-->
写一个main函数
创建客户端
RestHighLevelClient esClient = new RestHighLeveClient(
RestClient.builder(new HttpHost("localhost",port:1001,"http"))
);
创建索引
CreateIndexRequest user = new CreateIndexRequest("user");
CreateIndexResponse createIndexResponse = esClient.indices().create(user,RequestOption.DEFAULT);
响应状态
boolean ackonwledged = createIndexResponse.isAcknowledged();
查询索引
GetIndexRequest user1 = new GetIndexRequest("user");
GetIndexReponse getIndexReponse = esClient.indices().get(user1,RequestOption.DEFAULT);
System.out.println(getIndexReponse.getAliases());
System.out.println(getIndexReponse.getSettings());
System.out.println(getIndexReponse.getMappings());
删除索引
DeleteIndexRequest request = new DeleteIndexRequest("user");
AcknowledgedResponse delete = esClient.indices().delete(request,RequestOptions.DEFAULT);
**响应状态**
System.out.println(delete.isAcknowledged());
插入数据
IndexRequest requestIndex = new IndexRequest();
requestIndex.index("user").id("1001");//id号(自定义)
User user2 = new User(){{
setName("zhangsan");
setAge(20);
setSex("男");
}};
//向ES插入数据必须是JSON格式的
String writeValueAsString = new ObjectMapper().writeValueAsString(user2);
requestIndex.source(writeValueAsString,XContentType.JSON);
IndexResponse index = esClient.index(requestIndex,RequestOptions.DEFAULT);
System.out.println(index.getResult());
修改数据
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("user").id("1001");
updateRequest.doc(XContentType.JSON,"sex","女");
UpdateResponse update = esClient.update(updateRequest, RequestOptions.DEFAULT);
System.out.println(update.getResult());
查询数据
GetRequest getRequest = new GetRequest();
getRequest.index("user").id("1001");
GetResponse documentFields = esClient.get(getRequest, RequestOptions.DEFAULT);
System.out.println(documentFields.getSourceAsString());
删除
DeleteRequest deleteRequest = new DeleteRequest();
deleteRequest.index("user").id("1001");
DeleteResponse delete1 = esClient.delete(deleteRequest, RequestOptions.DEFAULT);
System.out.println(delete1.getResult());
批量插入
BulkRequest bulkRequest = new BulkRequest();
bulkRequest.add(new IndexRequest().index("user").id("1001").source(XContentType.JSON,"name","zhangsan"));
bulkRequest.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON,"name","zhangsan"));
bulkRequest.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON,"name","zhangsan"));
BulkResponse responses = esClient.bulk(bulkRequest, RequestOptions.DEFAULT);
System.out.println(responses.getTook());//执行时间
System.out.println(Arrays.toString(responses.getItems()));//在批量操作中执行的每个操作的项目
批量删除
DeleteRequest deleteRequest1 = new DeleteRequest();
bulkRequest.add(new DeleteRequest().index("user").id("1001"));
bulkRequest.add(new DeleteRequest().index("user").id("1002"));
bulkRequest.add(new DeleteRequest().index("user").id("1003"));
BulkResponse responsesDele = esClient.bulk(bulkRequest, RequestOptions.DEFAULT);
System.out.println(responses.getTook());//执行时间
System.out.println(Arrays.toString(responses.getItems()));//在批量操作中执行的每个操作的项目
//关闭客户端
esClient.close();