既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
1.简介
SpringBoot 项目初始化时就有 NoSQL 选项 Spring Data Elasticsearch(Access+Driver)
此时 pom 文件里引入的依赖是 spring-boot-starter-data-elasticsearch
它的版本受到 springboot 版本的限制,不能自由选择对应的 ES 版本。
还有另一个选择就是 Jest,以下是 官网 的介绍:
简单说就是:ES 有 Java API 但是没有 Http Rest interface,Jest 就是它的 HTTP Client。
2.依赖
<!-- https://mvnrepository.com/artifact/io.searchbox/jest -->
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>6.3.1</version>
</dependency>
3.配置
spring:
elasticsearch:
jest:
uris: http://localhost:9200
4.使用
(1)创建客户端【官网代码】
// Construct a new Jest client according to configuration via factory
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder("http://localhost:9200")
.multiThreaded(true)
//Per default this implementation will create no more than 2 concurrent connections per given route
.defaultMaxTotalConnectionPerRoute(<YOUR\_DESIRED\_LEVEL\_OF\_CONCURRENCY\_PER\_ROUTE>)
// and no more 20 connections in total
.maxTotalConnection(<YOUR\_DESIRED\_LEVEL\_OF\_CONCURRENCY\_TOTAL>)
.build());
JestClient client = factory.getObject();
(2)直接注入【配置文件进行参数配置】
@Autowired
JestClient jestClient;
5.测试源码
(1)创建索引
@SpringBootTest
class EsJestApplicationTests {
@Autowired
JestClient jestClient;
@Test
void createIndex() {
// 创建对象
User user = User.builder().id(1001).name("1号用户").age(22).build();
// 创建索引
Index index = new Index.Builder(user).index("user").type("name").build();
// 执行创建方法
try {
jestClient.execute(index);
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建成功:
(2)查询索引【注入等代码不再贴出 只贴出方法】
@Test
void queryIndex(){
// 查询语句【可以在HiJson工具里编辑】
String queryJson = "{\n" +
" \"query\": {\n" +
" \"match\": {\n" +
" \"name\": \"1号\"\n" +
" }\n" +
" }\n" +
"}";
// 创建查询
Search search = new Search.Builder(queryJson).addIndex("user").addType("name").build();
// 执行查询方法
try {
SearchResult result = jestClient.execute(search);
System.out.println(result.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
输出结果【这里简单换个行 避免格式化后占较大篇幅】:
Result:
{"took":47,"timed\_out":false,
"\_shards":{"total":5,"successful":5,"skipped":0,"failed":0},
"hits":{"total":1,"max\_score":0.5753642,
"hits":[
![img](https://img-blog.csdnimg.cn/img_convert/ad0df9ab2232135dc6c0335fa42d8ea2.png)
![img](https://img-blog.csdnimg.cn/img_convert/a922656454be410f9c3950a04cc895c0.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
ps://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**