【SpringBoot】最通俗易懂的基于ElasticSearch检索机制学习

注:本文章基于尚硅谷Springboot高级特性相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者!


前言

`我们的应用经常需要添加检索功能,开源的ElasticSerach是目前全文搜索殷勤的首先,可以快速的存储,搜索和分析海量数据;


一、Elasticserach简介

Elasticserach是面向文档的,意味着它存储整个对象或者文档;在Elasticserach中,你对文档进行索引,检索,排序和过滤而不是对行列数据。这是一种新的思考数据的方式,也是ElasticSerach能支持复杂全文检索的原因

存储数据到Elasticderach的行为叫索引,但在索引一个文档之前,需要确定文档索引在哪里;

一个Elasticserach集群可以包含多个索引,相应的每个索引可以包含多个类型,这些不同的类型存储着多个文档,每个文档又有多个属性
可以类比mysql数据库,索引类似于数据库,类型类似于不同的表,文档类似于表中的一条数据,属性类似于一条数据的一个子属性
在这里插入图片描述
支持RESFUL风格,改变请求方式即可对文档数据进行基本的增删改查
GET用来检索文档,DELETE用来删除文档,HEAD指令用来检查文档是否存在,PUT用来插入或者更新文档

Springboot默认支持两种技术来和ES交互;
1.Jest(默认不生效)
需要导入jest的工具包(io.serachbox.JestClient)
2.SpringData ElasticSercach【ES版本有可能不合适】
版本对应关系:
在这里插入图片描述

如果版本不适配:
(1)升级SpringBoot版本
 (2)安装对应版本的ES
  • Client节点信息:clusterNodes;clusterName
  • ElasticserachTemplate操作es
  • 编写一个ElasticserachRepository的子接口来操作ES;


二、SpingBoot整合Jest操作ES

(1)引入Elasticserach依赖文件:

<!--Springboot默认使用的ElasticSerach模块--!>
<!--<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>-->
<!--SpringBoot使用Jest--!>
<dependency>
  <groupId>io.searchbox</groupId>
  <artifactId>jest</artifactId>
  <version>5.3.3</version>
</dependency>

编写配置文件:

Spring.elasticserach.jest.uris:http://{你的主机ip地址}:9200

(2)编写测试文件测试插入:

@Autowired
JestClient jestclient;

@Test
public void contestLoads(){
//1.给Es索引中保存一个文档,这里Article的类可以自行编写
Article article =new Article(1,“好消息”,"zhangsan","Hello Word");

//2.创建一个索引功能
Index index=new Index.Builder(article).index("atguigu").type("news).build();
//执行
jestClient.execute(index);


}

查询结果:
在这里插入图片描述

(3)编写测试文件测试搜索:

@Test
public void serach(){
//1.查询表达式(可以根据官方文档按照自己的需求进行编写)
String json="填你需要的,这里不再演示"
//2.创建一个搜索功能
Serach serach=new Serach.Builder(json).index("atguigu").addtype("news).build();
//执行
jestClient.execute(index);


}

运行结果:
在这里插入图片描述
更多操作可以参考GitHub的jest官方文档


三.Springboot整合SpringDataElasticSerach

(1)编写配置文件;

spring.data.elasticserach.cluster-name=elasticserach
spring.data.elasticserach.cluster-nodes={你的主机地址}:9300

这里可以运行一下看是否报错,如果报错了要去看一下是不是上面说的版本问题

(2)编写测试文件;
编写继承ElasticserachRepository<Book,Integer>接口
在接口中可以有多种方法,具体可以参考官方文档,重要掌握前面的Jest方式即可


总结

这次的学习就到此为止了,期待你的一键三连,一起努力吧么么哒!!
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PoJo123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值