不能在 put 映射请求中提供类型,除非 include_type_name 参数设置为 true [JAVA]

Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true [JAVA]

我们有一个 java 应用程序(spring 启动 + 休眠搜索 + 弹性搜索)。 应用程序在弹性搜索版本 6.8

上运行良好

最近,我们在 aws 中创建了一个新集群,版本为 7.10.2,并在我的 java 应用程序中更新了弹性搜索端点。

更新弹性搜索端点后出现错误无法更新放置映射放置映射请求中无法提供类型,除非include_type_name参数设置为真 并因此无法启动服务器。

我不确定在哪里设置 include_type_name=true 因为所有索引都是使用 @Indexed 自动创建的。

有人可以告诉我们如何解决这个问题吗?

感谢@yrodiere 的回复。

我尝试升级到低于依赖项的版本,但不幸的是无法修复它。

上一版本:

 compile 'org.hibernate:hibernate-search-orm:5.9.3.Final'
 compile 'org.hibernate:hibernate-search-elasticsearch:5.9.3.Final'
 compile 'org.hibernate:hibernate-search-elasticsearch-aws:5.9.3.Final'

更新版本:

 compile 'org.hibernate:hibernate-search-orm:5.9.3.Final 
 compile 'org.hibernate.search:hibernate-search-backend-elasticsearch:6.1.1.Final'    
 compile 'org.hibernate.search:hibernate-search-backend-elasticsearch-aws:6.1.1.Final'

注意:如果我降级这个 org.hibernate:hibernate-search-orm:5.9.3.Final 然后得到 CE

我是不是漏了什么?

您可能正在使用 Hibernate Search 5.x。在 Hibernate Search 5.x 中,Elasticsearch 集成 was experimental and only compatible with Elasticsearch up to version 5.6.

您的应用程序在 Elasticsearch 6.8 上运行良好纯属幸运:Hibernate Search 5.x 从未打算在 Elasticsearch 6+ 上运行。

要升级到更新版本的 Elasticsearch,您必须升级到 Hibernate Search 6.0 (or later). The API is different, but there is a very detailed migration guide, and at least you will get production-ready (non-experimental) Elasticsearch integration (plus tons of improvements)。

请注意,Hibernate Search 6.x 还需要升级到 Hibernate ORM 5.4;参见 this compatibility matrix