Spring Data ES 3.2.0.M1仍然使用旧的TransportClient
而不是HighLevelRestClient
Spring Data ES 3.2.0.M1支持高级REST客户端,请参阅添加对Java高级REST客户端的支持。我添加了Spring Data ES 3.2.0。M1到SB2应用程序:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.0.M1</version>
</dependency>
但是,仍然使用了TransportClient
。有两种迹象表明:启动时的例外情况:
o.e.transport.netty4.Netty4Transport : exception caught on transport layer [NettyTcpChannel{localAddress=/127.0.0.1:61171, remoteAddress=localhost/127.0.0.1:8085}], closing connection
io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:472) ~[netty-codec-4.1.33.Final.jar:4.1.33.Final]
调用ElasticsearchTemplate时出现异常stacktrace
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:349)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:247)
at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:60)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:382)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:395)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:384)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:46)
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.getSearchResponse(ElasticsearchTemplate.java:947)
是否有任何配置参数告诉Spring Data ES切换到新的高级Rest客户端?医生们对此只字不提。
P.S.Spring数据ES 3.2。0.M1有6.4。3 ES客户端版本:
Caused by: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
at org.elasticsearch.transport.TcpTransport.validateMessageHeader(TcpTransport.java:1327) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.transport.netty4.Netty4SizeHeaderFrameDecoder.decode(Netty4SizeHeaderFrameDecoder.java:36) ~[transport-netty4-client-6.4.3.jar:6.4.3]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502) ~[netty-codec-4.1.33.Final.jar:4.1.33.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441) ~[netty-codec-4.1.33.Final.jar:4.1.33.Final]
... 20 common frames omitted
后端运行6.4。2版本:
bash-4.4$ curl http://127.0.0.1:8085
{
"name" : "NA17WWR",
"cluster_name" : "494164851665",
"cluster_uuid" : "7t3LoK7PRp-ur6FyxSmHwQ",
"version" : {
"number" : "6.4.2",
"build_flavor" : "oss",
"build_type" : "zip",
"build_hash" : "04711c2",
"build_date" : "2018-10-16T09:16:35.059415Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
正如您所指的问题中提到的,高级REST客户端在ElasticsearchRestTemplate
(请参见PR 216)中提供,而不是在ElasticsearchTemplate
中提供,出于向后兼容性的原因,他们将保留到ES 7。
您可以使用以下配置创建一个:
<bean name="elasticsearchTemplate"
class="org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate">
<constructor-arg name="client" ref="restClient"/>
</bean>
<elasticsearch:rest-client id="restClient"/>
我正在尝试从ElasticSearch 2过渡到5或6。我想我想直接跳到6.1.1并使用RestHighLevelClient,因为它比低级rest客户端更接近我正在使用的现有传输客户端。 但是,我遇到了一个问题作为集成测试的一部分,我正在创建索引并插入特定数据,因此我知道我的查询是正确的。我似乎无法在High Level客户端中做到这一点。特别是,我希望能够调用: 但是,client.indic
我得到以下异常,而试图使用Elasticsearch高Rest客户端。 我使用的是Spring Boot 2.0.4和Elasticsearch 6.4版本。。用例只是用一些数据创建一个索引,然后检索相同的数据。。 我刚刚遵循了elasticsearch文档中的依赖项,并正确地进行了设置。 我对Gradle的依赖是 为了简单起见,给出了代码的简短版本。。 有人能帮忙吗?
我正在尝试将数据插入bonsai上托管的ElasticSearch(版本7.4.2)。io云。当我尝试创建IndexRequest时 我的pom。xml具有以下依赖关系: 我甚至尝试将以下依赖项添加到我的pom.xml 有人能在7.4.2版本中帮我解决这个问题吗?
我在从传输客户端迁移到Rest高级客户端时遇到问题。下面的代码不适用于RestHighLevelClient,我想使用它来获取类类型的聚合页面的响应。 我们也欢迎任何用其他方法实现同样目标的建议。
我想获取我的ElasticSearch集群的元数据,它的版本是5.6.x。我正在使用高级rest客户端。 我已经检查了rest客户端支持的所有api,但是没有找到获取元数据的方法。 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.6/Java-rest-high-support-apis.html 如何使用ES5.6
这是我的Elasticsearch sql查询。我使用Kibana执行了这个查询,并得到了有效的输出。 明白吗?format=json{“query”:“从eps_stbl_日志中选择Count(appId),其中cast(timestamp AS DATE)=TODAY()和status='COMPLETED'” 这需要在restHighLevelClient java API中编写。你能帮助编