
获得徽章 0
自学自学Java第169天
把昨天和今天的结合在一起
就是一个完整的搜索页面的完成
-
从前端页面发送请求到后台
后台接受对应的请求
根据获取的请求参数去索引库查询
-
再将数据响应给前端就好了
emm…还差一个前端渲染没有完成
感觉好像有点复杂的样子
-
今天学的主要就是后台编写的Java代码
这个Repository就好比是以前的Mapper层
难怪以前mapper层上注解就是repository
-
Repository,翻译就是仓库的意思
这里对应的是从索引库中查询数据
使用的是原生的查询方法
利用查询构建器完成
-
有一个类叫NativeSearchQueryBuilder
不要看这个类好像挺复杂的意思
翻译过来不就是本地搜索查询构建器的意思么?
差不多也就能理解了
-
像这种后缀名为builder的类
一般都是可以链式编程的,能不断地调用各种api
最后以调用build()方法结束
-
思路也就是这么一个思路
剩下的就是记api了,基本上都是见名知意的
比如matchQuery方法也就对应索引库中的match匹配
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
把昨天和今天的结合在一起
就是一个完整的搜索页面的完成
-
从前端页面发送请求到后台
后台接受对应的请求
根据获取的请求参数去索引库查询
-
再将数据响应给前端就好了
emm…还差一个前端渲染没有完成
感觉好像有点复杂的样子
-
今天学的主要就是后台编写的Java代码
这个Repository就好比是以前的Mapper层
难怪以前mapper层上注解就是repository
-
Repository,翻译就是仓库的意思
这里对应的是从索引库中查询数据
使用的是原生的查询方法
利用查询构建器完成
-
有一个类叫NativeSearchQueryBuilder
不要看这个类好像挺复杂的意思
翻译过来不就是本地搜索查询构建器的意思么?
差不多也就能理解了
-
像这种后缀名为builder的类
一般都是可以链式编程的,能不断地调用各种api
最后以调用build()方法结束
-
思路也就是这么一个思路
剩下的就是记api了,基本上都是见名知意的
比如matchQuery方法也就对应索引库中的match匹配
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
2
1
自学Java第168天
第一次没有准时推文,感觉不是个好兆头
我个人的一个学习习惯
会将推送文章的时间设置在早上
-
这样的一个坏处在于:
早上一共就那么点时间,时间会很紧
因为要上班,我必须得在8点之前全部做完
写好笔记,排好版再推送文章都得完成
至于发帖这种用手机就能操作,倒是无所谓
-
但是也有其好处:
正是因为这种紧迫感,会督促着自己早起
谁不想多睡会早床呀?我也想
但是一想到自己文章还未推送就会有动力起来
-
也正是因为这份紧迫感,学起来会特别地专注
若是在晚上,可能学完一个小知识点
会安慰自己,刷会手机什么的?容易分心
而早上的话根本就没时间刷手机什么的
-
双休时的状态其实就是一个很好的例子
因为一想时间还很多,就容易拖着……
没有早上的那种紧迫感
-
只是唉,这种学习方式被打破了
今天虽然是周日,但是也是要上班的
然而这次我没有在早上8点之前做完
还差了一点,只能中午抽时间补全了
-
有一就有二,这其实也是我自己担心的
但愿不要成为一个转折点
-
当然这种学习方法好么?
我个人觉得是不怎么样的
这只是我没法做到自律而想到的一个折中方案
-
如果有一天我学会自律
那什么时候学还不是都可以么?
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
第一次没有准时推文,感觉不是个好兆头
我个人的一个学习习惯
会将推送文章的时间设置在早上
-
这样的一个坏处在于:
早上一共就那么点时间,时间会很紧
因为要上班,我必须得在8点之前全部做完
写好笔记,排好版再推送文章都得完成
至于发帖这种用手机就能操作,倒是无所谓
-
但是也有其好处:
正是因为这种紧迫感,会督促着自己早起
谁不想多睡会早床呀?我也想
但是一想到自己文章还未推送就会有动力起来
-
也正是因为这份紧迫感,学起来会特别地专注
若是在晚上,可能学完一个小知识点
会安慰自己,刷会手机什么的?容易分心
而早上的话根本就没时间刷手机什么的
-
双休时的状态其实就是一个很好的例子
因为一想时间还很多,就容易拖着……
没有早上的那种紧迫感
-
只是唉,这种学习方式被打破了
今天虽然是周日,但是也是要上班的
然而这次我没有在早上8点之前做完
还差了一点,只能中午抽时间补全了
-
有一就有二,这其实也是我自己担心的
但愿不要成为一个转折点
-
当然这种学习方法好么?
我个人觉得是不怎么样的
这只是我没法做到自律而想到的一个折中方案
-
如果有一天我学会自律
那什么时候学还不是都可以么?
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
14
9
自学Java第167天
自定义工具类JsonUtils的学习
其可以实现json的序列化与反序列化
-
序列化也就是指将Java对象转换成json字符串
该Java对象可以是一个普通对象
也可以一个List集合,亦或是Map集合
其都有对应的json格式
这个当初在学json的时候就有说明
-
反序列化也就是将json字符串转换成Java对象
根据json的不同转换成不同的对象
比如在该工具类JsonUtils中:
-
toBeans()将json字符串转换成普通对象
toList()将json字符串转换成List集合
toMap()将json字符串转换成Map集合
nativeRead()是一个通用方法
都有对应的参数,具体详解在笔记中都有说明
-
老实说,该工具类模板网上有一堆
直接复制粘贴会用即可
但本着学习的原则还是将其学习了一遍
-
该工具类在项目开始的时候就有接触到
当时看的时候有点懵懵懂懂,主要也不想看
觉得工具类嘛,会用就行,没必要花这个时间
-
至于现在嘛,仔细看了下发现其实挺简单的
于是就写了一篇文章,算是做一个小结吧
emm…其实主要是现在学习精力完全跟不上了
明天还要做一份PPT,哎哟,一想就脑壳痛
嘛,不想了,只有挤时间吧
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
自定义工具类JsonUtils的学习
其可以实现json的序列化与反序列化
-
序列化也就是指将Java对象转换成json字符串
该Java对象可以是一个普通对象
也可以一个List集合,亦或是Map集合
其都有对应的json格式
这个当初在学json的时候就有说明
-
反序列化也就是将json字符串转换成Java对象
根据json的不同转换成不同的对象
比如在该工具类JsonUtils中:
-
toBeans()将json字符串转换成普通对象
toList()将json字符串转换成List集合
toMap()将json字符串转换成Map集合
nativeRead()是一个通用方法
都有对应的参数,具体详解在笔记中都有说明
-
老实说,该工具类模板网上有一堆
直接复制粘贴会用即可
但本着学习的原则还是将其学习了一遍
-
该工具类在项目开始的时候就有接触到
当时看的时候有点懵懵懂懂,主要也不想看
觉得工具类嘛,会用就行,没必要花这个时间
-
至于现在嘛,仔细看了下发现其实挺简单的
于是就写了一篇文章,算是做一个小结吧
emm…其实主要是现在学习精力完全跟不上了
明天还要做一份PPT,哎哟,一想就脑壳痛
嘛,不想了,只有挤时间吧
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
1
5
自学Java第166天
一个方法写了一百多行代码,我擦咧
这是我迄今为止以来写的最长的一个方法了
写了我2千字都没有将它给学完
-
其实就一个目的,查询数据并存储数据
查询哪些数据呢?
也就是前两天一直在分析的数据
具体的查询方法在商品微服务中都写好了
-
现在等于是调用这些方法就好了
但是问题来了,查询到了,怎么存呢?
-
创建了一个Goods实体类,和索引库对应
再将查询到的数据一一存储到该实体类就好了
两句话就搞定了“导入数据到索引库”
-
但是代码写了我一百多行
说难吧其实也还好,不是非常难理解的那种
就是特别的繁琐
-
主要有四项数据,对应着Goods中的字段
all数据:其包含了商品标题、商品分类、品牌这些
skus数据:也就是spu中附带的sku集合
price数据:也就是sku中商品对应的价格集合
使用feign客户端调用对应的查询业务即可
-
上述三个字段都简单,复杂的是这个specs字段
specs是一个map集合
-
它的key来自于spec_param表
对应业务是根据条件查询规格参数
它的value来自于spu_detail表
对应的业务也即是根据spuId查询detail
-
为什么说它是最复杂的?
规格参数值中分为通用规格和特有规格这些就不说了
复杂的在于要将key和value一一对应起来
-
其它数据都是查询好了直接存储就好了
但是specs不行,其实很好理解
就是我们从数据库中查询到的数据是:
所有的key,也就是规格参数名
所有的value,也就是通用规格和特有规格
-
你怎么知道这个key对应的是哪个value呢?
得对应好了再才能存储
上述过程在笔记中有说明,还差一点没写完
只能说真的太复杂了
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
一个方法写了一百多行代码,我擦咧
这是我迄今为止以来写的最长的一个方法了
写了我2千字都没有将它给学完
-
其实就一个目的,查询数据并存储数据
查询哪些数据呢?
也就是前两天一直在分析的数据
具体的查询方法在商品微服务中都写好了
-
现在等于是调用这些方法就好了
但是问题来了,查询到了,怎么存呢?
-
创建了一个Goods实体类,和索引库对应
再将查询到的数据一一存储到该实体类就好了
两句话就搞定了“导入数据到索引库”
-
但是代码写了我一百多行
说难吧其实也还好,不是非常难理解的那种
就是特别的繁琐
-
主要有四项数据,对应着Goods中的字段
all数据:其包含了商品标题、商品分类、品牌这些
skus数据:也就是spu中附带的sku集合
price数据:也就是sku中商品对应的价格集合
使用feign客户端调用对应的查询业务即可
-
上述三个字段都简单,复杂的是这个specs字段
specs是一个map集合
-
它的key来自于spec_param表
对应业务是根据条件查询规格参数
它的value来自于spu_detail表
对应的业务也即是根据spuId查询detail
-
为什么说它是最复杂的?
规格参数值中分为通用规格和特有规格这些就不说了
复杂的在于要将key和value一一对应起来
-
其它数据都是查询好了直接存储就好了
但是specs不行,其实很好理解
就是我们从数据库中查询到的数据是:
所有的key,也就是规格参数名
所有的value,也就是通用规格和特有规格
-
你怎么知道这个key对应的是哪个value呢?
得对应好了再才能存储
上述过程在笔记中有说明,还差一点没写完
只能说真的太复杂了
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
评论
点赞
自学Java第166天
feign的使用,emm…感觉也忘的差不多了
做个回顾,大致说下其作用
就是伪装的意思,大白话的理解就是:
业务好像是我实现的,实际上是调用别人的
-
说到这我不得不想吐槽一下:
搜索本来就是创建一个索引库
再从数据库中查询数据并导入不就好了么?
需要哪些数据就去查对应的数据呗
-
但是它偏不这样做,它要调用别人
怎么调用别人的?就是通过这个feign
绕来绕去绕了一大圈其实就是为了这个目的
-
这就是面向对象的思想
就是别人写好了,我没必要再写啊
直接调用就好了
-
虽然可能有的时候调用比自己写还要复杂…
-
微服务有两类:
一类是经常需要被调用的
比如商品微服务,这是核心服务
-
如果其它服务每次一需要商品相关的数据
都要去数据库查询
那何必呢?根本就没必要这么做
-
所以如果是需要被调用的微服务
一般会被至少拆分成3个子工程:
pojo对应实体类
service对应具体的业务逻辑
interface对应接口
-
别人需要调用,引入interface子工程就好了
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
feign的使用,emm…感觉也忘的差不多了
做个回顾,大致说下其作用
就是伪装的意思,大白话的理解就是:
业务好像是我实现的,实际上是调用别人的
-
说到这我不得不想吐槽一下:
搜索本来就是创建一个索引库
再从数据库中查询数据并导入不就好了么?
需要哪些数据就去查对应的数据呗
-
但是它偏不这样做,它要调用别人
怎么调用别人的?就是通过这个feign
绕来绕去绕了一大圈其实就是为了这个目的
-
这就是面向对象的思想
就是别人写好了,我没必要再写啊
直接调用就好了
-
虽然可能有的时候调用比自己写还要复杂…
-
微服务有两类:
一类是经常需要被调用的
比如商品微服务,这是核心服务
-
如果其它服务每次一需要商品相关的数据
都要去数据库查询
那何必呢?根本就没必要这么做
-
所以如果是需要被调用的微服务
一般会被至少拆分成3个子工程:
pojo对应实体类
service对应具体的业务逻辑
interface对应接口
-
别人需要调用,引入interface子工程就好了
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
3
10
自学Java第164天
老实说,感觉今天啥也没学
完全就是拼凑了一篇文章
-
要知道虽然现在实现的业务是搜索
但是其本质上还是对商品的各种操作
而商品相关业务是编写在商品微服务中的
-
也就是说搜索中需要哪些商品相关数据
不需要自己去数据库查询
而是直接调用商品微服务编写好的即可
-
那搜索微服务中需要哪些数据呢?
昨天我们分析过需要的数据格式
由此可以推断出需要查询的商品相关数据
-
分页查询SPU表
根据spuId查询sku
根据spuId查询spuDetail
根据商品分类id查询商品分类
根据id查询品牌
规格参数的查询
-
这些需求大部分以前都实现过
但是我的学习进度拉扯的太长了
所以很多业务基本都忘了
-
忘了怎么办?回顾呗
-
第151天笔记中说明了分页查询SPU表
第152天笔记中stream流和通用mapper批量查询
当时学习这两个知识点时牵扯到了两个业务:
根据商品多级id批量查询商品分类
根据id查询品牌
第154天学习笔记中说明了规格参数的查询
-
其中还有两个业务:
根据spuId查询sku
根据spuId查询spuDetail
当初并没有在笔记中说明,现在补全
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
老实说,感觉今天啥也没学
完全就是拼凑了一篇文章
-
要知道虽然现在实现的业务是搜索
但是其本质上还是对商品的各种操作
而商品相关业务是编写在商品微服务中的
-
也就是说搜索中需要哪些商品相关数据
不需要自己去数据库查询
而是直接调用商品微服务编写好的即可
-
那搜索微服务中需要哪些数据呢?
昨天我们分析过需要的数据格式
由此可以推断出需要查询的商品相关数据
-
分页查询SPU表
根据spuId查询sku
根据spuId查询spuDetail
根据商品分类id查询商品分类
根据id查询品牌
规格参数的查询
-
这些需求大部分以前都实现过
但是我的学习进度拉扯的太长了
所以很多业务基本都忘了
-
忘了怎么办?回顾呗
-
第151天笔记中说明了分页查询SPU表
第152天笔记中stream流和通用mapper批量查询
当时学习这两个知识点时牵扯到了两个业务:
根据商品多级id批量查询商品分类
根据id查询品牌
第154天学习笔记中说明了规格参数的查询
-
其中还有两个业务:
根据spuId查询sku
根据spuId查询spuDetail
当初并没有在笔记中说明,现在补全
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
评论
4
自学Java第163天
好,正式回到微服务项目中的学习
一个elasticsearch就花了我一个星期
-
还有一个solr的知识点就没学了
不然时间拖得太久,和项目相关的都忘了
这些就留待以后再更新吧
-
搜索业务会独立成一个搜索微服务
从0到1完整地搭建了该服务
其实无外乎核心三步骤:
-
pom文件导入服务相关的依赖
yml配置文件说明服务相关的各种配置
启动类上加上对应的注解
-
当然也可以使用spring脚手架自行创建
但这些都不是重点,哪种方式都可以
重点是关于数据的格式分析
-
我们随便打开一个电商网站,在上面搜索
结果显示的是和搜索相关的数据
-
这些数据是怎么来的?
对应了数据库中的些表?
对应了哪个索引库?
对应了Java中的那个实体类?
这些弄清楚了,代码相对而言也就好写了
-
可以观察现有的电商网站搜索后的页面
其实无外乎对应了两类数据:
-
一是过滤数据
用户可以根据品牌、商品分类、各种规格参数
以及价格区间来筛选出他们想要的数据
-
二是展示数据
其实本质上就是一个个的SPU
SPU中又携带了多个SKU数据
关于SPU和SKU在第150天有详细的说明
-
根据这些我们就可以设置一个Java实体类
将这些数据封装到索引库中
从而实现搜索的业务
-
当然今天一天肯定是弄不完了
以我的进度估计要花个几天的时间
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
好,正式回到微服务项目中的学习
一个elasticsearch就花了我一个星期
-
还有一个solr的知识点就没学了
不然时间拖得太久,和项目相关的都忘了
这些就留待以后再更新吧
-
搜索业务会独立成一个搜索微服务
从0到1完整地搭建了该服务
其实无外乎核心三步骤:
-
pom文件导入服务相关的依赖
yml配置文件说明服务相关的各种配置
启动类上加上对应的注解
-
当然也可以使用spring脚手架自行创建
但这些都不是重点,哪种方式都可以
重点是关于数据的格式分析
-
我们随便打开一个电商网站,在上面搜索
结果显示的是和搜索相关的数据
-
这些数据是怎么来的?
对应了数据库中的些表?
对应了哪个索引库?
对应了Java中的那个实体类?
这些弄清楚了,代码相对而言也就好写了
-
可以观察现有的电商网站搜索后的页面
其实无外乎对应了两类数据:
-
一是过滤数据
用户可以根据品牌、商品分类、各种规格参数
以及价格区间来筛选出他们想要的数据
-
二是展示数据
其实本质上就是一个个的SPU
SPU中又携带了多个SKU数据
关于SPU和SKU在第150天有详细的说明
-
根据这些我们就可以设置一个Java实体类
将这些数据封装到索引库中
从而实现搜索的业务
-
当然今天一天肯定是弄不完了
以我的进度估计要花个几天的时间
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
8
5
自学Java第162天
Java是一门计算机编程语言
通过它可以实现对各种软件的操作
-
无论是很早之前就学过的MySQL数据库
还是最近在学的Elasticsearch都是一样的道理
可以直接使用它们,但是没有直接的应用价值
用户不可能说直接去操作数据库什么的
-
所以需要计算机编程语言将他们应用起来
这样它们才会有价值,这里以Java为例:
Java中其实无外乎就是类、方法、属性
-
match匹配查询也好、词条匹配查询也罢
亦或是范围查询啊、布尔查询啊
在Java中对应的也就是不同的方法
基本上根据方法名就能看出其作用
-
就是很多方法大致猜都能猜一个大概出来
比如看到And大致就能想到逻辑运算中的“与”
看到Or大致就能想到逻辑运算中的“或”……等等
-
再加上开发工具中有提示的功能
所以学的时候很多基本上都能猜一个大概
-
还有Java中的类如果后缀为builder
该类一般都可以使用链式编程添加多个方法
new对象调用方法,最后以builder()方法结束
如果该类的后面还有一个s
那么它就是一个工具类,可以直接调用方法
-
索引库原生的查询基本上就是这么一个套路
-
还有关于聚合也是一样的道理:
terms()方法对应的也就是桶中的一种类型
同理也能猜出还有度量类型对应的方法:
avg()方法、sum()方法、max()方法……等
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
Java是一门计算机编程语言
通过它可以实现对各种软件的操作
-
无论是很早之前就学过的MySQL数据库
还是最近在学的Elasticsearch都是一样的道理
可以直接使用它们,但是没有直接的应用价值
用户不可能说直接去操作数据库什么的
-
所以需要计算机编程语言将他们应用起来
这样它们才会有价值,这里以Java为例:
Java中其实无外乎就是类、方法、属性
-
match匹配查询也好、词条匹配查询也罢
亦或是范围查询啊、布尔查询啊
在Java中对应的也就是不同的方法
基本上根据方法名就能看出其作用
-
就是很多方法大致猜都能猜一个大概出来
比如看到And大致就能想到逻辑运算中的“与”
看到Or大致就能想到逻辑运算中的“或”……等等
-
再加上开发工具中有提示的功能
所以学的时候很多基本上都能猜一个大概
-
还有Java中的类如果后缀为builder
该类一般都可以使用链式编程添加多个方法
new对象调用方法,最后以builder()方法结束
如果该类的后面还有一个s
那么它就是一个工具类,可以直接调用方法
-
索引库原生的查询基本上就是这么一个套路
-
还有关于聚合也是一样的道理:
terms()方法对应的也就是桶中的一种类型
同理也能猜出还有度量类型对应的方法:
avg()方法、sum()方法、max()方法……等
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
2
3
自学Java第161天
学了几天的Elasticsearch
那如何用Java代码操作它呢?
-
我们以前学MySQL数据库的时候
也是先学了好几天的sql语句
这个就好比是前几天学的那些请求
-
后面用Java语言操作数据库是使用的jdbc
spring提供了jdbcTemplate可以完成crud
同样的道理,也有ElasticsearchTemplate
-
这是spring全家桶中的springdata提供的
关于其具体的用法,和数据库太像了
其中有更简便的方法就和通用mapper很类似
-
要知道jdbcTemplate虽然确实可以用
但是在项目中没用过它,都是用的通用mapper
并不是说它没用,而是通用mapper比较简便
-
同样的道理,ElasticsearchTemplate也能用
但是相对而言比较麻烦
使用ElasticsearchRepository就好了
-
通用mapper中创建接口继承mapper说明泛型
直接使用该接口就可以完成crud
这里也是一样的道理
自定义接口继承ElasticsearchRepository
-
emmm,不说了,好想睡觉
详细用法笔记中就有记载
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
学了几天的Elasticsearch
那如何用Java代码操作它呢?
-
我们以前学MySQL数据库的时候
也是先学了好几天的sql语句
这个就好比是前几天学的那些请求
-
后面用Java语言操作数据库是使用的jdbc
spring提供了jdbcTemplate可以完成crud
同样的道理,也有ElasticsearchTemplate
-
这是spring全家桶中的springdata提供的
关于其具体的用法,和数据库太像了
其中有更简便的方法就和通用mapper很类似
-
要知道jdbcTemplate虽然确实可以用
但是在项目中没用过它,都是用的通用mapper
并不是说它没用,而是通用mapper比较简便
-
同样的道理,ElasticsearchTemplate也能用
但是相对而言比较麻烦
使用ElasticsearchRepository就好了
-
通用mapper中创建接口继承mapper说明泛型
直接使用该接口就可以完成crud
这里也是一样的道理
自定义接口继承ElasticsearchRepository
-
emmm,不说了,好想睡觉
详细用法笔记中就有记载
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
8
4
自学Java第150天
Elasticsearch的高级用法
过滤、排序、高阶查询以及最重要的聚合
-
严格上来说也不算是高级用法
知识点并不是像Java中动态代理一样难理解
就是比较繁琐,使用方式太多了
我只是详细说明了一些比较常用的
-
我大致做一个简单的回顾
搜索的结果默认是所有数据都会显示出来
但有时候我们只需要指定字段的数据
-
两种使用方式,都很好理解:
includes说明想要显示的字段
excludes说明不想要显示的字段
-
布尔查询的使用,也是非常常用的一种方式
它本身并不是一种查询方式
而是能将多种查询方式以三种方式组合起来
说白了其实它就对应了三种逻辑运算
-
must就相当于逻辑运算“与”
must_not就相当于逻辑运算“非”
should就相当于逻辑运算“或”
-
此外还有一个非常重要的查询方式:聚合
其有两种常用类型
-
桶(bucket),这个太生动形象了
目前上海一直在执行垃圾分类
就是将垃圾这数据安装类型分成了四个桶
根据这个例子也就能很好滴理解桶的概念
-
度量(metrice)
这个也就对应着我们以前学过的聚合函数
比如求平均值啊、求和啊、求最大值啊……等等
-
具体的使用方法,在笔记中有详细的说明
还有范围查询、模糊查询、排序等一大堆用法
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
Elasticsearch的高级用法
过滤、排序、高阶查询以及最重要的聚合
-
严格上来说也不算是高级用法
知识点并不是像Java中动态代理一样难理解
就是比较繁琐,使用方式太多了
我只是详细说明了一些比较常用的
-
我大致做一个简单的回顾
搜索的结果默认是所有数据都会显示出来
但有时候我们只需要指定字段的数据
-
两种使用方式,都很好理解:
includes说明想要显示的字段
excludes说明不想要显示的字段
-
布尔查询的使用,也是非常常用的一种方式
它本身并不是一种查询方式
而是能将多种查询方式以三种方式组合起来
说白了其实它就对应了三种逻辑运算
-
must就相当于逻辑运算“与”
must_not就相当于逻辑运算“非”
should就相当于逻辑运算“或”
-
此外还有一个非常重要的查询方式:聚合
其有两种常用类型
-
桶(bucket),这个太生动形象了
目前上海一直在执行垃圾分类
就是将垃圾这数据安装类型分成了四个桶
根据这个例子也就能很好滴理解桶的概念
-
度量(metrice)
这个也就对应着我们以前学过的聚合函数
比如求平均值啊、求和啊、求最大值啊……等等
-
具体的使用方法,在笔记中有详细的说明
还有范围查询、模糊查询、排序等一大堆用法
-
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
展开
3
1