一 SpringBoot + Elasticsearch 项目环境搭建

1.1 修改pom文件添加依赖

目前使用spring-boot-starter-parent版本为2.2.8.RELEASE

对应spring-data-elasticsearch版本为2.2.8.RELEASE,版本对应可以自行百度,如果不行直接用elasticsearch-rest-high-level-client工具类吧

org.springframework.boot

spring-boot-starter-data-elasticsearch

2.2.8.RELEASE

org.elasticsearch

elasticsearch

7.5.0

org.elasticsearch.client

elasticsearch-rest-client

7.5.0

org.elasticsearch.client

elasticsearch-rest-high-level-client

7.5.0

1.2 新建配置文件

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;

/**

* ES配置类

*

* @author lc

* @version 1.0

* @date 2022/3/25 10:53

*/

@Configuration

public class ElasticSearchClientConfig {

@Bean

public RestHighLevelClient restHighLevelClient() {

RestHighLevelClient client = new RestHighLevelClient(

RestClient.builder(new HttpHost("192.168.1.100", 9200, "http")));

return client;

}

}

二 RestHighLevelClient的使用

RestHighLevelClient是Elasticsearch 的操作方法,我们先进行引用吧。

@Autowired

private RestHighLevelClient client;

1、创建索引

@Test

void testCreateIndex() throws IOException {

//1 创建索引请求

CreateIndexRequest request = new CreateIndexRequest("zlc_index");

//2 客户端执行请求

CreateIndexResponse createIndexResponse =

client.indices().create(request, RequestOptions.DEFAULT);

System.out.println(createIndexResponse);

}

2、索引是否存在

@Test

void testExistIndex() throws IOException {

GetIndexRequest request = new GetIndexRequest("zlc_index");

boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);

System.out.println(exists);

}

3、删除索引

@Test

void testDeleteIndex() throws IOException {

DeleteIndexRequest request = new DeleteIndexRequest("zlc_index");

AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);

System.out.println(delete.isAcknowledged());

}

4、添加文档

@Test

void testAddDocument() throws IOException {

//创建对象

UserES user = new UserES();

user.setUserName("suwerw");

user.setUserPhone("178245774");

//创建请求

IndexRequest request = new IndexRequest("zlc_index");

//规则 put /zlc_index/_doc/1

request.id("1");

request.timeout(TimeValue.timeValueSeconds(1));

request.timeout("1s");

//将数据放入请求

request.source(JSON.toJSONString(user), XContentType.JSON);

//客户端发送请求,获取响应结果

IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);

System.out.println(indexResponse.toString());

System.out.println(indexResponse.status());

}

5、判断文档是否存在

@Test

void testIsExists() throws IOException {

GetRequest getRequest = new GetRequest("zlc_index", "1");

//不获取返回的 _source 的上下文,提高效率

getRequest.fetchSourceContext(new FetchSourceContext(false));

getRequest.storedFields("_none_");

boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);

System.out.println(exists);

}

6、获取文档

@Test

void testGetDocument() throws IOException {

GetRequest getRequest = new GetRequest("zlc_index", "1");

GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);

System.out.println(getResponse);

System.out.println(getResponse.getSourceAsString());

}

7、更新文档信息

@Test

void testUpdateDocument() throws IOException {

UpdateRequest updateRequest = new UpdateRequest("zlc_index", "1");

updateRequest.timeout("1s");

UserES user = new UserES();

user.setUserName("Zhou_LC");

user.setUserPhone("233669");

updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);

UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);

System.out.println(updateResponse);

System.out.println(updateResponse.status());

}

8、删除文档

@Test

void testDeleteDocument() throws IOException {

DeleteRequest deleteRequest = new DeleteRequest("zlc_index", "1");

deleteRequest.timeout("1s");

DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);

System.out.println(deleteResponse);

System.out.println(deleteResponse.status());

}

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: