我只能粗略的说,这个答案很笼统,当使用elasticsearch的时候一定要保持版本统一
原因:因为有时不同spring版本所管理的es的版本都不一样
解决:知道问题之后直接强制指定es的版本,使其统一在pom.xml中加入
<properties>
<java.version>1.8</java.version>
<elasticsearch.version>7.12.1</elasticsearch.version>
<!-- 这里你本地的es是什么版本你就写什么版本 -->
</properties>
等待加载完成之后,在启动代码,运行成功
package cn.itcast.hotel;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
@SpringBootTest
public class HotelIndexTest {
private RestHighLevelClient client;
@Test
void testInit(){
System.out.println(client);
}
//当你需要这个RestHighLevelClient的时候,就不用每次都去创建一个关联的连接
@BeforeEach
void setUp() {
this.client=new RestHighLevelClient(RestClient.builder(
HttpHost.create("http://192.168.26.131:9200")
));
}
@AfterEach
void tearDown() throws IOException {
this.client.close();
}
}