搜索微服务的搭建以及需要的数据格式分析

今天是刘小爱自学Java的第163天。

感谢你的观看,谢谢你。

学习计划安排如下:

  • 正式开始在项目中实现搜索相关的功能,也就是elasticsearch的应用。
  • 关于搜索,会将其独立成一个微服务。
  • 任务量比较大,估计要花个几天的时间。

首先简单地说明一下这几天需要完成的任务:现在随便去电商网站搜索大致都会出现如下页面:

当然上述页面都是假数据,真的数据需要从数据库中查询到并完成渲染,后面会完成。

这次的数据格式是比较复杂的,它是对应了多张数据表,如果只是对应一张数据表,那简直不要太简单了。

当然关于具体的数据格式分析,文章后面会详细说明到,首先从微服务搭建开始。

一、搜索微服务搭建

可以使用spring脚手架搭建,这个昨天刚说明过,也可以自学创建Maven项目。

当然这不是重点,重点是文章后面的数据格式分析,但因为好久没有创建过微服务了,所以自行搭建做个回顾,其实无外乎核心三步骤。

1pom文件引入依赖

关于依赖,简单地做一个说明。

①eureka客户端依赖

搜索微服务要在注册中心完成注册。

②web启动器

因为项目用的是SpringBoot,所以使用的相关依赖是SpringBoot中的启动器,基本格式都是spring-boot-starter-对应的依赖

③elasticsearch

搜索的核心依赖了,格式同上。

④feign的使用

这个后面会使用到,到时候会做一个详细的说明。

⑤test依赖

SpringBoot测试相关的依赖,格式同②。

⑥商品微服务实体类

这是我们商品微服务中拆分的实体类,因为经常需要被其它各种微服务调用,所以将商品微服务拆分成了pojo和service两个子模块。

2yam配置文件

①指定服务对应的端口

②给搜索微服务取一个名称。

③elasticsearch相关配置

利用cluster-nodes说明自己装在虚拟机中的elasticsearch对应的ip加上端口号。

④eureka相关配置

3编写启动类

@SpringBootAppplication说明这个类是一个SpringBoot应用启动类。

@EnableDiscoveryClient说明是注册中心客户端,需要向注册中心注册服务。

@EnableFeignClients说明是feign客户端。

二、数据格式分析

看到一个业务需求,首先要考虑的也就是数据格式分析,捋一捋自己的思路:

  • 前端数据:HTML标签,这里vue组件。
  • Java数据:需要哪些实体类?
  • MySQL数据库数据:对应哪些数据表?

而我们常用的json格式数据也就是前端和后台数据相互沟通的一个桥梁。

在文章开头就说明过前端相关的数据,现在具体分析下。

1展示数据

观察页面的搜索结果,搜索手机也好,搜索电脑或者其它商品也罢,其结果一般会出现多个商品,也就是上图所示。

页面中展示的一个商品数据就是一个SPU,SPU是多个SKU共有集。

那么SPU和SKU又是什么?

这个在第150天学习笔记中详细讲解过,这里做一个简单的回顾:

  • 一个确定的商品就是一个SKU,它的颜色,内存大小,价格都确定下来了。

  • 而多个SKU共用的部分就是一个SPU,上述图片中,无论是什么颜色,什么大小的手机都是共用上述框中的数据。

但是仔细观察上述页面,选择商品大图下面的小图,商品会跟着变化,也就是SKU中的数据要实现动态变化。

所以我们需要的数据就是一个SPU,同时也需要包含SKU的信息。

2过滤数据

用户选择对应的选项,要过滤出对应的数据展示给用户,所以这些过滤条件都是需要存储在索引库中的,其中包括有:

商品分类,品牌,可以用来搜索的规格参数,以及价格。

这是观察到的最直观的数据。

三、Java实体类

上述我们分析了一通,分析的是需要保存到索引库中的数据,这样才能利用elasticsearch更好地实现搜索。

并不是说所有的数据都要存储到索引库中。

①展示的数据

搜索结果的基础数据是SPU,所以这个id也就是SPUid

subTitle:商品副标题,也就是商品卖点,比如满100减50这样的促销数据。

SKUS这个上述我们刚分析过,展示给用户看的是一个SPU,但是其需要包含了SKU的数据,就是很多个SKU,当然这里使用json结构的字符串来表示的。

它们都有一个特点:用户不会直接搜索到这些数据,所以不用分词,也不需要索引。

②过滤的数据

我们前面分析了很多,但是忽视了一个问题,就是用户在搜索框中输入的数据。

要知道用户在搜索框中输入的数据是有很多种可能的,可能是品牌,可能是某个参数,所以这里用all来表示全文检索数据。

用户还可以根据商品品牌、分类以及创建时间过滤,分别对应了上述3个字段。

price:商品一般都可以根据不同的价格区间完成过滤,这里用一个price集合来表示。

specs:可以过滤的规格参数有很多,这里使用键值对来表示。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Origin软件是OriginLab公司研发的专业制图和数据分析软件,是公认的简单易学、操作灵活、功能强大的软件,既可以满足一般用户的制图需求,也可以满足高级用户数据分析、函数拟合的需求。软件适合研究人员、工程师和科学人员使用。 教程的总体结构如下: 第2集:Origin窗口结构与布局;介绍Origin中7种窗口的功能、建立和保存工程文件的方法 第3集:建立数据文件;介绍建立完整的数据文件的方法,包括输入数据、设置列绘图属性和设置列数据属性 第4集:导入数据文件(一);介绍ASCII码文件的导入方法和导入设置 第5集:导入数据文件(二);以Access为例,介绍数据库文件的查询和导入方法 第6集:导入数据文件(三);介绍Excel文件的导入方法,包括导入为Origin的工作表和导入为Origin内嵌的Excel表格 第7集:导入数据文件(四);介绍Import Wizard导入向导的使用方法,以及导入数据文件的其它一些问题 第8集:数据文件的简单编辑;介绍完整的列属性设置及列顺序交换、排序、提取数据、替换数据、转置等数据编辑操作 第9集:函数赋值;介绍工作表窗口中对表单列的函数赋值操作 第10集:Origin二维图形绘制;介绍二维图形的绘制方法与绘图设置对话框的使用 第11集:Origin内置二维图形概述(一);介绍内置二维图形的特点和应用 第12集:Origin内置二维图形概述(二);介绍内置二维图形的特点和应用 第13集:绘图细节设置(一);介绍图形窗口和图层的绘图细节设置 第14集:绘图细节设置(二);介绍点线图图形的绘图细节设置 第15集:绘图细节设置(三);介绍其它内置图形的绘图细节设置 第16集:坐标轴设置(一);介绍坐标轴刻度线的相关设置 第17集:坐标轴设置(二);介绍坐标轴标记的相关设置 第18集:图例文本设置;介绍图例文本的对象属性对话框和程序控制对话框的相关设置 第19集:多图层图形的绘制;介绍图层的建立、调整、多图层绘图和图层的分解与合并 第20集:图层管理;介绍图层管理对话框的相关设置 第21集:图形工具的使用;介绍Tools工具栏、Graph工具栏、Mask工具栏和Object Edit工具栏的使用方法 第22集:主题绘图与模板绘图;介绍主题绘图与模板绘图的操作方法 第23集:Excel窗口绘图;介绍在Excel窗口中绘制图形的方法 第24集:函数窗口绘图;介绍在函数窗口中绘制图象的方法 第25集:建立矩阵文件;介绍矩阵窗口的基本概念、维数设置、属性设置、赋值以及矩阵的基本操作 第26集:矩阵窗口和工作表窗口的数据转换;介绍3种工作表窗口到矩阵窗口的转换方法和1种矩阵窗口到工作表窗口的转换方法 第27集:Origin内置三维图形概述;介绍内置三维图形的特点和应用 第28集:绘图细节设置(四);介绍三维图形的绘图细节设置 第29集:页面布局与出图;介绍Layout页面布局窗口的使用方法和2种图形输出方式 第30集:数据分析概述;介绍Origin的数据分析功能,包括Analysis分析菜单、Statistics统计菜单和Image图象菜单 第31集:数学运算(一):插值;介绍Origin的根据X插值Y、轨迹插值、一般插值和3D插值四种运算功能 第32集:数学运算(二):初等分析运算;介绍Origin的简单算术运算、标准化、数值微分、数值积分和多曲线平均五种运算功能 第33集:数据操作:基线;介绍Origin的扣除基线和基线平移两种操作 第34集:拟合(一):线性与多项式拟合;介绍Origin的一元线性拟合、一元多项式拟合和多元线性拟合三种拟合功能 第35集:拟合(二):拟合报表分析;介绍Origin的拟合报表的分析方法与操作 第36集:拟合(三):非线性拟合;介绍Origin的非线性曲线拟合、曲面拟合、矩阵拟合和Simulate曲线四种拟合功能 第37集:拟合(四):自定义函数拟合;介绍Origin的函数管理器窗口和自定义函数的操作方法 第38集:拟合(五):峰值拟合、指数拟合与反曲拟合;介绍Origin的单峰拟合、多峰拟合、指数拟合和反曲拟合四种专项拟合功能 第39集:拟合(六):比对;介绍Origin的数据集比对和模型比对两种功能 第40集:信号处理(一):平滑;介绍Origin的数据平滑功能 第41集:信号处理(二):滤波;介绍Origin的FFT滤波功能 第42集:信号处理(三):傅立叶分析1;介绍Origin的FFT、IFFT和STFT三种傅立叶分析功能 第43集:信号处理(四):傅立叶分析2;介绍Origin的卷积与去卷积、一致相关分析和希尔伯特变换五种傅立叶分析功能 第44集:信号处理(五):小波分析1;介绍Origin的连续小波变换、小波分解、小波重构和多尺度离散小波变换四种小波分析功能 第45集:信号处理(六):小波分析2;介绍Origin的小波降噪和小波平滑两种小波分析功能 第46集:光谱分析:基线与峰值;介绍Origin的创建基线、扣除基线、寻峰和峰值积分四种光谱分析功能 第47集:描述性统计(一):行列统计、相关性;介绍Origin的行统计、列统计和相关系数三种描述性统计 第48集:描述性统计(二):频率统计、正态性;介绍Origin的离散频率统计、频数统计、二维频数统计和正态检验四种描述性统计 第49集:假设检验(一):期望检验;介绍Origin的单样本t检验、双样本配对数据t检验和双样本独立数据t检验三种假设检验 第50集:假设检验(二):方差检验;介绍Origin的单样本?2检验和双样本F检验两种假设检验 第51集:方差分析;介绍Origin的单因素水平、双因素水平的单测量方差分析和单因素水平、双因素水平的重复测量方差分析四种分析功能 第52集:非参数检验;介绍Origin的十一种非参数检验功能 第53集:存活分析;介绍Origin的Kaplan—Meier估计、Cox模型估计和Weibull拟合三种存活分析功能 第54集:功效与样本容量分析;介绍Origin的三种期望检验和一种方差分析的功效与样本容量分析功能 第55集:操作特性曲线;介绍Origin的ROC操作特性曲线功能 第56集:分析模板的建立;介绍建立分析模板的方法,以及如何利用分析模板实现数据文件的批处理操作 第57集:图像处理(一):调整、算术变换;介绍Origin的十四种调整功能和九种算术变换功能 第58集:图像处理(二):转换、几何变换与空间滤镜;介绍Origin的十一种转换功能、六种几何变换功能和八种空间滤镜功能 第59集:LabTalk脚本语言;介绍LabTalk脚本语言的编程方法 第60集:OriginC语言;介绍OriginC语言的编程方法 第61集:授控于MATLAB;介绍Origin作为主控端控制MATLAB的使用方法 第62集:授控于Mathematica;介绍Origin作为主控端控制Mathematica的使用方法 第63集:授控于LabVIEW;介绍Origin作为主控端控制LabVIEW的使用方法 第64集:X Function框架;介绍X Function框架的调用方法和制作 第65集:Origin扩展组件;介绍Origin网络扩展资源的下载和使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘小爱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值