ElasticSearch6.x 基于SpringBoot 实现ElasticSearch连接功能封装

怼烎@ 2023-10-18 22:21 198阅读 0赞

第一步:基于SpringBoot2.1.2,依赖ElasticSearch jar 包

  1. <!--elasticsearch 依赖 -->
  2. <dependencies>
  3. <dependency>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  6. </dependency>
  7. </dependencies>

第二步:封装ElasticSearch 连接参数实体对象(ElasticSearchConfigEntity.java)

功能描述:声明ElasticSearchConfigEntity.java 为组件,实现读取application.properties 配置文件中涉及elasticsearch 服务器连接参数。

  1. package com.zzg.ela.entity;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.stereotype.Component;
  4. /**
  5. * ElasticSearch 实例化对象
  6. * @author zzg
  7. *
  8. */
  9. @Component
  10. public class ElasticSearchConfigEntity {
  11. // 集群名称
  12. @Value("${com.zzg.ela.cluster_name}")
  13. private String cluster_name;
  14. // 是否开启本地存储
  15. @Value("${com.zzg.ela.enable}")
  16. private String enable;
  17. // ip地址
  18. @Value("${com.zzg.ela.ip}")
  19. private String ip;
  20. // port 地址
  21. @Value("${com.zzg.ela.port}")
  22. private String port;
  23. // set 和 get
  24. public String getCluster_name() {
  25. return cluster_name;
  26. }
  27. public void setCluster_name(String cluster_name) {
  28. this.cluster_name = cluster_name;
  29. }
  30. public String getEnable() {
  31. return enable;
  32. }
  33. public void setEnable(String enable) {
  34. this.enable = enable;
  35. }
  36. public String getIp() {
  37. return ip;
  38. }
  39. public void setIp(String ip) {
  40. this.ip = ip;
  41. }
  42. public String getPort() {
  43. return port;
  44. }
  45. public void setPort(String port) {
  46. this.port = port;
  47. }
  48. }

第三步:application.properties 配置涉及elasticsearch 服务器相关配置参数,截图如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3V6aGl3ZW5nYW5n_size_16_color_FFFFFF_t_70

第四步:编写ElasticSearch 配置参数对象(ElasticSearchConfig.java)

功能说明:注入ElasticSearchConfigEntity对象,实例化TransportClient对象。

  1. package com.zzg.ela.config;
  2. import java.net.InetAddress;
  3. import java.net.UnknownHostException;
  4. import javax.annotation.PostConstruct;
  5. import org.elasticsearch.client.transport.TransportClient;
  6. import org.elasticsearch.common.settings.Settings;
  7. import org.elasticsearch.common.transport.TransportAddress;
  8. import org.elasticsearch.transport.client.PreBuiltTransportClient;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. import com.zzg.ela.entity.ElasticSearchConfigEntity;
  13. /**
  14. * ElasticSearch 配置
  15. *
  16. * @author zzg
  17. *
  18. */
  19. @Configuration
  20. public class ElasticSearchConfig {
  21. @Autowired
  22. private ElasticSearchConfigEntity entity;
  23. @PostConstruct
  24. void init() {
  25. System.setProperty("es.set.netty.runtime.available.processors", "false");
  26. }
  27. /**
  28. * ela 连接实列化对象
  29. *
  30. * @return
  31. */
  32. @Bean
  33. public TransportClient getTransportClient() {
  34. // 9300是es的tcp服务端口
  35. TransportAddress node = null;
  36. try {
  37. node = new TransportAddress(InetAddress.getByName(entity.getIp()), Integer.valueOf(entity.getPort()));
  38. } catch (NumberFormatException e) {
  39. // TODO Auto-generated catch block
  40. e.printStackTrace();
  41. } catch (UnknownHostException e) {
  42. // TODO Auto-generated catch block
  43. e.printStackTrace();
  44. }
  45. // 设置es节点的配置信息
  46. Settings settings = Settings.builder().put("cluster.name", entity.getCluster_name()).build();
  47. // 实例化es的客户端对象
  48. TransportClient client = new PreBuiltTransportClient(settings);
  49. client.addTransportAddress(node);
  50. return client;
  51. }
  52. }

第五步:编写ElasticSearchUtil工具类对象

功能说明:注入TransportClient, 封装elasticsearch 搜索引擎的通用操作。

  1. @Component
  2. public class ElasticSearchIndexUtil {
  3. // 引入 Ela 连接实列化对象
  4. @Autowired
  5. private TransportClient client;
  6. /**其他功能待补充**/
  7. }

发表评论

表情:
评论列表 (有 0 条评论,198人围观)

还没有评论,来说两句吧...

相关阅读