Wondercease

浙ICP备2022017321号

ElasticSearch(二)Springboot配置ElasticSearch

1.maven

<dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

springboot的版本和自己的es版本相对应

2.设置Config

/**
 * ElasticSearch 客户端配置
 */
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
    @Override
    @Bean
    public RestHighLevelClient elasticsearchClient() {
        final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                .connectedTo("localhost:9200")
                .build();
        return RestClients.create(clientConfiguration).rest();
    }
}

报错可能是因为地址还有配置不对(之前配置明明配了还是报错,随后发现是nacos对应的配置是另外一个em)以及版本,比如公司的版本是5.x的配置文件就不长这样

*ElasticsearchRestTemplate,也就是rest模式的,端口的用9200

yml中进行配置:

server:
  port: 10068
spring:
  application:
    name: search
  data:
    elasticsearch:
      cluster-name: my-application (可以去9200地方看名字)
      cluster-nodes: 192.168.10.12:9300 #es安装的节点

3.文档

Spring Data Elasticsearch – Reference Documentation

4.常见错误

1)None of the configured nodes are available

-确认节点名字和ip以及端口地址

-如果发现改了es名字之后,启动后对应的名字没改,可能是之前装过没有彻底卸载干净,卸载干净,再启动

-也有可能端口 ip 没映射好的原因

-ES7版本后不支持TransportClient方式连接

排查方法:

1.telnet ip 9300发现网络不通

设置yml

network.address: 0.0.0.0

2.内存不足

sudo sysctl -w vm.max_map_count=xxxx

3.关闭嗅探

config增加

Settings esSettings = Settings.builder()
.put("cluster.name", esClusterName)
.put("client.transport.sniff", false).build();

2)java.lang.IllegalStateException:… unsupported version: [5.0.0] minimal version is: [6.8.0]

springboot和es 版本不适配 两个相互匹配即可

-SpringBoot是2.2.0.RELEASE才兼容elasticsearch 7.x

发表评论

您的电子邮箱地址不会被公开。