ElasticSearch异常[类型=异常,原因=内容类型头[应用程序/vnd.ElasticSearch+json;兼容=7]

btqmn9zl  于 2023-03-01  发布在  ElasticSearch
关注(0)|答案(1)|浏览(684)

获取下面的错误,而运行 Spring Boot 版本3.0.0应用程序与ElasticSearch.

Caused by: org.elasticsearch.ElasticsearchStatusException:
 Elasticsearch exception [type=exception, reason=Content-Type header [application/vnd.elasticsearch+json; compatible-with=7] is not supported]

我尝试将springboot从 2.6.9 升级到 3.0.x,导致ElasticSearch出现上述错误。(在springboot升级之前,ElasticSearch工作正常)

Spring启动升级前使用的版本

  • Spring Boot 版本2.6.9
  • Spring启动起动器数据ElasticSearch2.6.9
  • Spring数据ElasticSearch4.4.0
  • ElasticSearch剩余高级客户端7.17.3
  • ElasticSearch服务器版本7.9.3
    Spring启动升级后使用的版本
  • Spring Boot 版本3.0.0
  • Spring启动器数据ElasticSearch3.0.0
  • Spring数据ElasticSearch5.0.0
  • ElasticSearch剩余高级客户端7.17.3
  • ElasticSearch服务器版本7.9.3
c86crjj0

c86crjj01#

我检查了Spring Data Elasticsearch的代码,为什么以及在什么情况下会在5.0.0版本中发送此标头:
1.当使用旧的React式客户端实现时(新的实现使用与新的ElasticsearchClient相同的传输函数)。由于此旧的React式客户端仅与Elasticsearch 7兼容,因此它现在设置此标头。
1.当新的ElasticsearchClient被创建时(这在4.4版和Elasticsearch 7.17或更早的版本中已经是可能的,尽管是可选的)。当现在为新客户端构建传输时,这个头被设置为使用的库的版本。这个传输也被用于新的React式客户端。
您正在引用RestHighLevelClient的一个依赖项,但该代码没有发送此标头,因此您可能是被动的或正在使用新客户端。您的客户端是如何设置的,您使用哪个客户端类?
但是主要的问题是你使用的Elasticsearch服务器版本已经超过两年了(7.9.3版本发布于2020年10月22日),并且不理解这个头文件。使用这个Elasticsearch依赖项的最新Spring Data Elasticsearch版本是4.1,4.2已经是针对7.12.0构建的。

相关问题