spring boot 集成 elasticsearch
1. 在pom中添加 maven 依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
2. 配置 elasticsearch 地址
elasticsearch.addr=xxx.xxx.xxx.156:9300,xxx.xxx.xxx.157:9300,xxx.xxx.xxx.158:9300
3. 添加bean ,初始化es 实例
destroy-method=“close” 的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ElasticSearchConfig {
@Value("${elasticsearch.addr}")
private String addr;
@Bean(destroyMethod = "close")
public RestHighLevelClient restHighLevelClient() {
String[] segments = addr.split(",");
HttpHost[] esNodes = new HttpHost[segments.length];
for (int i = 0; i < segments.length; i++) {
String[] hostAndPort = segments[i].split(":");
esNodes[i] = new HttpHost(hostAndPort[0], Integer.parseInt(hostAndPort[1]), "http");
}
return new RestHighLevelClient(RestClient.builder(esNodes));
}
}
4. 注入使用即可
@Autowired
private RestHighLevelClient restHighLevelClient;