Spring数据弹性搜索可以';t使用ElasticSearch 5.5.0进行连接
我是ElasticSearch的新手 非常喜欢API(特别是ElasticsearchTemplate和支持单元测试) 使用ElasticSearch 5.5.0遵循此示例(以下链接包含完整的内联代码,也可作为可下载的zip文件提供): maven依赖项:Spring数据弹性搜索可以';t使用ElasticSearch 5.5.0进行连接,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我是ElasticSearch的新手 非常喜欢API(特别是ElasticsearchTemplate和支持单元测试) 使用ElasticSearch 5.5.0遵循此示例(以下链接包含完整的内联代码,也可作为可下载的zip文件提供): maven依赖项: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-par
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
# spring boot
compile 'org.springframework.boot:spring-boot:2.0.0.M2'
# elasticsearch
compile 'org.elasticsearch:elasticsearch:5.5.0'
compile 'org.elasticsearch.client:transport:5.5.0'
# spring-data-elasticsearch for spring boot
compile 'org.springframework.boot:spring-boot-starter-data-elasticsearch:2.0.0.M2'
src/main/resources:
elasticsearch.clustername = mkyong-cluster
elasticsearch.host = localhost
elasticsearch.port = 9300
发布以下文件时,请选择:
mvn spring-boot:run
或
标准:
Caused by: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{127.0.0.1:9300}]]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:326)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:223)
at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55)
此外,请在我的ElasticSearch 5.5.0引擎的标准输出中获取以下内容:
[2017-07-23T02:48:46,135][WARN ][o.e.t.n.Netty4Transport ] [vY7jxpr] exception caught on transport layer [[id: 0xa7e950be, L:/127.0.0.1:9300 - R:/127.0.0.1:60190]], closing connection
java.lang.IllegalStateException: Received message from unsupported version: [1.0.0] minimal compatible version is: [5.0.0]
at org.elasticsearch.transport.TcpTransport.messageReceived(TcpTransport.java:1379) ~[elasticsearch-5.5.0.jar:5.5.0]
at org.elasticsearch.transport.netty4.Netty4MessageChannelHandler.channelRead(Netty4MessageChannelHandler.java:74) ~[transport-netty4-5.5.0.jar:5.5.0]
有没有办法将Spring数据ElasticSearch与ElasticSearch 5.5.0引擎结合使用
如果是,将如何实现连接
我使用的是Elastic Search提供的Elastic Search Java客户端,能够在ElasticSearch 5.5.0上连接并创建索引,但我真的希望能够利用这个库的强大功能。Spring Boot 1.5.1不支持ElasticSearch 5.x(您提供的文章也提到了这一点)。为了能够使用ElasticSearch 5.x,您需要使用Spring Boot 2的里程碑 尝试使用以下依赖项配置项目:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
# spring boot
compile 'org.springframework.boot:spring-boot:2.0.0.M2'
# elasticsearch
compile 'org.elasticsearch:elasticsearch:5.5.0'
compile 'org.elasticsearch.client:transport:5.5.0'
# spring-data-elasticsearch for spring boot
compile 'org.springframework.boot:spring-boot-starter-data-elasticsearch:2.0.0.M2'
这应该允许您使用Elasticsearch Java API和spring数据Elasticsearch的所有优点
更新:基本Gradle(v4.0.1)配置如下(build.Gradle文件):
非常感谢你!这是个好消息,但我不知道如何用我的Maven pom.xml配置它。。。此外,我似乎无法在文章中找到SpringBoot1.5.1缺少ElasticSearch5.x的地方。支持。在文章的开头有一个注释部分:
SpringBoot 1.5.1.RELEASE和Spring数据Elasticsearch 2.10.RELEASE仅支持Elasticsearch 2.4.0。他们不支持最新版本的ElasticSearch 5.x版本…
我主要使用gradle进行依赖关系管理-我用配置更新了我的答案,因此更容易将其转换为maven pom。我建议生成pom文件的启动程序-它还将为里程碑生成正确的存储库,因为它们不在cental存储库中。
buildscript {
ext {
springBootVersion = '2.0.0.M2'
}
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/libs-snapshot' }
maven { url 'http://repo.spring.io/milestone/' }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
apply plugin: 'java-library'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
jar {
baseName = 'elastic'
version = '0.0.1'
}
repositories {
mavenCentral()
jcenter()
maven { url 'https://repo.spring.io/libs-snapshot' }
maven { url 'http://repo.spring.io/milestone/' }
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.springframework.boot:spring-boot-starter-logging'
compile 'org.springframework.boot:spring-boot-starter-data-elasticsearch'
compile 'org.elasticsearch:elasticsearch:5.4.1'
compile 'org.elasticsearch.client:transport:5.4.1'
compile 'com.google.guava:guava:20.0'
testCompile 'junit:junit:4.12'
}