使用springboot2+elasticsearch7注意事项

  1. elasticsearch7以上版本需要springboot2.0以上版本支持
  2. elasticsearch官方在8版本以后放弃TransportClient
  3. sprinboot2.3.4配置elasticsearch7.6.2
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent
   <!--ElasticSearch-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

		<!--注意这个包: 不导入无法使用ElasticsearchTemplate-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>7.6.2</version>
        </dependency>
  1. 找不到ElasticsearchTemplate类型bean的解决方案 导入该包
	<!--注意这个包: 不导入无法使用ElasticsearchTemplate-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>7.6.2</version>
        </dependency>
  1. 如果还是无法找到ElasticsearchTemplate 备用配置
    @Bean
    public ElasticsearchTemplate elasticsearchTemplate() {
        // 创建Client连接对象
        Settings settings = Settings.builder().put("cluster.name", "ES-Cluster").build();
        TransportClient client = new PreBuiltTransportClient(settings);
        //添加多个节点防止节点挂掉
        try {
            client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9301));

            client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9302));
            client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9303));
            return new ElasticsearchTemplate(client);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return null;
    }
posted @ 2020-10-16 11:09  IT夏天  阅读(128)  评论(0编辑  收藏  举报