1.在pom.xml文件中加入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2.修改application.properties

#spring.data.elasticsearch.cluster-name=my-application(这句不要写,写了这句就会报错,4错误二所示)
# Elasticsearch服务地址
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.repositories.enabled=true
# 设置连接超时时间
spring.data.elasticsearch.properties.transport.tcp.connect_timeout=120s

3.错误一

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

解决办法:在ThymeleafInActionApplication class上方加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}),如下图所示:

 Elasticsearch与springboot的整合以及遇到的问题 随笔

4.错误二:

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{RDlwiaOTQJSvplguzUoY7A}{localhost}{127.0.0.1:9300}]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:347) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:245) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:366) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54) ~[elasticsearch-5.6.9.jar:5.6.9]
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.doScroll(ElasticsearchTemplate.java:781) ~[spring-data-elasticsearch-3.0.7.RELEASE.jar:3.0.7.RELEASE]
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.startScroll(ElasticsearchTemplate.java:795) ~[spring-data-elasticsearch-3.0.7.RELEASE.jar:3.0.7.RELEASE]
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.delete(ElasticsearchTemplate.java:692) ~[spring-data-elasticsearch-3.0.7.RELEASE.jar:3.0.7.RELEASE]
at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.deleteAll(AbstractElasticsearchRepository.java:257) ~[spring-data-elasticsearch-3.0.7.RELEASE.jar:3.0.7.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_112]

原因:application.properties中写了spring.data.elasticsearch.cluster-name=my-application,删掉这句即可

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄