在 spring 引导中找不到 Elasticsearch 方法
Elasticsearch method not being found in spring boot
我已经被这个问题困扰了一段时间,非常感谢任何帮助。我正在 运行宁 Spring 引导版本 2.2.0
与 ElasticSearch 高级 REST 客户端版本 6.4.3
并使用版本 3.2.0
作为 Spring- Data-Elasticsearch版本。我收到以下错误。我尝试了以下修复尝试,但 none 可以。
- 多次更改Spring引导版本
- 多次更改ES版本
- 我已经清除了我的 .m2 文件夹并多次重新下载了 maven 依赖项。
我遇到的问题是
试图调用不存在的方法。尝试是从以下位置进行的:
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.putMapping(ElasticsearchRestTemplate.java:292)
不存在以下方法:
org.elasticsearch.client.IndicesClient.putMapping(Lorg/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest;Lorg/elasticsearch/client/RequestOptions;)Lorg/elasticsearch/action/support/master/AcknowledgedResponse;
方法的 class、org.elasticsearch.client.IndicesClient 可从以下位置获得:
jar:file:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client-6.4.3.jar!/org/elasticsearch/client/IndicesClient.class
它是从以下位置加载的:
文件:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client-6.4.3.jar
行动:
更正应用程序的 class 路径,使其包含 org.elasticsearch.client.IndicesClient
的单一兼容版本
我的POM如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.0</version>
</dependency>
感谢任何帮助。我确信它必须处理兼容性问题但不确定是哪个。谢谢大家!
更新
通过将我的 elasticsearch 版本更改为 6.7.0
,我能够 运行 成功获取它。但是现在我收到以下错误
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=index_not_found_exception, reason=no such index]
我的 POM 现在也如下所示。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.70</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.70</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>6.70</version>
</dependency>
之前的 method that does not exist.
问题已通过将 elasticsearch 版本更改为 6.7.0
来解决。
为避免这些不兼容问题,始终建议使用相同版本的 elasticsearch 服务器及其客户端。
我遇到了完全相同的问题,我使用的是 elastic search 6.8.18。
并且如前所述,通过在 Gradle.
中使用以下内容更改了弹性搜索的版本
ext['elasticsearch.version'] = '6.8.18'
以此为参考 - overriding dependency versions
我已经被这个问题困扰了一段时间,非常感谢任何帮助。我正在 运行宁 Spring 引导版本 2.2.0
与 ElasticSearch 高级 REST 客户端版本 6.4.3
并使用版本 3.2.0
作为 Spring- Data-Elasticsearch版本。我收到以下错误。我尝试了以下修复尝试,但 none 可以。
- 多次更改Spring引导版本
- 多次更改ES版本
- 我已经清除了我的 .m2 文件夹并多次重新下载了 maven 依赖项。
我遇到的问题是
试图调用不存在的方法。尝试是从以下位置进行的:
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.putMapping(ElasticsearchRestTemplate.java:292)
不存在以下方法:
org.elasticsearch.client.IndicesClient.putMapping(Lorg/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest;Lorg/elasticsearch/client/RequestOptions;)Lorg/elasticsearch/action/support/master/AcknowledgedResponse;
方法的 class、org.elasticsearch.client.IndicesClient 可从以下位置获得:
jar:file:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client-6.4.3.jar!/org/elasticsearch/client/IndicesClient.class
它是从以下位置加载的: 文件:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client-6.4.3.jar
行动: 更正应用程序的 class 路径,使其包含 org.elasticsearch.client.IndicesClient
的单一兼容版本我的POM如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.0</version>
</dependency>
感谢任何帮助。我确信它必须处理兼容性问题但不确定是哪个。谢谢大家!
更新
通过将我的 elasticsearch 版本更改为 6.7.0
,我能够 运行 成功获取它。但是现在我收到以下错误
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=index_not_found_exception, reason=no such index]
我的 POM 现在也如下所示。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.70</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.70</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>6.70</version>
</dependency>
之前的 method that does not exist.
问题已通过将 elasticsearch 版本更改为 6.7.0
来解决。
为避免这些不兼容问题,始终建议使用相同版本的 elasticsearch 服务器及其客户端。
我遇到了完全相同的问题,我使用的是 elastic search 6.8.18。 并且如前所述,通过在 Gradle.
中使用以下内容更改了弹性搜索的版本ext['elasticsearch.version'] = '6.8.18'
以此为参考 - overriding dependency versions