由于我用的是springboot2.3.0版本,es用的是7.4.2,但是boot中研究定义了es的版本是7.6.2,

在这里修改版本没有生效,导致项目引入了2个版本,下面是我用的api,(暂时还不知道为什么)
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
</dependency>
注:后面重启发现就可以了。。。。

然后就会发生以下错误
java.lang.IncompatibleClassChangeError: Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected at org.elasticsearch.client.RequestConverters.createEntity(RequestConverters.java:689) at org.elasticsearch.client.RequestConverters.createEntity(RequestConverters.java:684) at org.elasticsearch.client.IndicesRequestConverters.createIndex(IndicesRequestConverters.java:128) at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1760) at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1734) at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1696) at org.elasticsearch.client.IndicesClient.create(IndicesClient.java:191) at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.createIndex(ElasticsearchRestTemplate.java:1248) at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.createIndex(ElasticsearchRestTemplate.java:1256)
查找原因,应该是2个版本原因导致的,于是就统一一下,我改不了7.4.2,那我就选择加入7.6.2,哈哈哈。

存在一个版本,然后再进行测试。
@Autowired(required = false)
private RestHighLevelClient client;
@Test
void indexData() throws IOException {
IndexRequest request = new IndexRequest("users");
request.id("1");
User u = new User();
u.setAge(11);
u.setGender("男");
u.setUserName("wgr");
String s = JSON.toJSONString(u);
request.source(s, XContentType.JSON);
IndexResponse indexResponse = client.index(request, GulimallElasticSearchConfig.COMMON_OPTIONS);
System.out.println(indexResponse);
}

所有评论(0)