随笔分类 - 乐优商城项目
摘要:1.Spring AMQP (1)简介 Spring有很多不同的项目,其中就有对AMQP的支持: Spring AMQP的页面:http://spring.io/projects/spring-amqp 注意:Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的
阅读全文
摘要:1.RabbitMq (1)问题引出 目前我们已经完成了商品详情和搜索系统的开发。我们思考一下,是否存在问题? 商品的原始数据保存在数据库中,增删改查都在数据库中完成。 搜索服务数据来源是索引库,如果数据库商品发生变化,索引库数据不能及时更新。 商品详情做了页面静态化,静态页面数据也不会随着数据库商
阅读全文
摘要:1.Thymeleaf (1)简介 Thymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎。注意:是在服务器端进行渲染。 Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - HTML。可以在直接浏览器中正确显示,并且可以作为静态原型,从而在开发团队中实现更
阅读全文
摘要:先来看分类和品牌。在我们的数据库中已经有所有的分类和品牌信息。在这个位置,是不是把所有的分类和品牌信息都展示出来呢? 显然不是,用户搜索的条件会对商品进行过滤,而在搜索结果中,不一定包含所有的分类和品牌,直接展示出所有商品分类,让用户选择显然是不合适的。 无论是分类信息,还是品牌信息,都应该从搜索的
阅读全文
摘要:刚才的查询中,我们默认了查询的页码和每页大小,因此所有的分页功能都无法使用,接下来我们一起看看分页功能条该如何制作。 这里要分两步, 第一步:如何生成分页条 第二步:点击分页按钮,我们做什么 第一步:如何生成分页条 第二步:点击分页按钮,我们做什么 1.如何生成分页条 先看下页面关于分页部分的代码:
阅读全文
摘要:1.修改host解析 2.使用Nginx代理,实现域名访问 进入Nginx的安装路径E:\toolsoftware\nginx-1.14.0\nginx-1.14.0\conf,修改 添加如下内容: 范例: 重新加载Nginx 3.访问测试 浏览器输入:http://image.leyou.com/
阅读全文
摘要:1.页面分析 (1)页面跳转 在首页的顶部,有一个输入框: 当我们输入任何文本,点击搜索,就会跳转到搜索页search.html了: 并且将搜索关键字以请求参数携带过来: 我们打开search.html,在最下面会有提前定义好的Vue实例: 这个Vue实例中,通过import导入的方式,加载了另外一
阅读全文
摘要:1.创建搜索服务 创建module: Pom文件: application.yml: 引导类: 2.索引库数据格式分析 接下来,我们需要商品数据导入索引库,便于用户搜索。 那么问题来了,我们有SPU和SKU,到底如何保存到索引库? <1>以结果为导向 大家来看下搜索结果页: 可以看到,每一个搜索结果
阅读全文
摘要:1.Springboot测试类运行报错 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTe
阅读全文
摘要:Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序列化为json存储 查询到结果也需要自己反序列化为对象 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把
阅读全文
摘要:聚合可以让我们极其方便的实现对数据的统计、分析。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而
阅读全文
摘要:1.查询 (1)基本查询 基本语法: 这里的query代表一个查询对象,里面可以有不同的查询属性 查询类型: 例如:match_all, match,term , range 等等 查询条件:查询条件会根据类型的不同,写法也有差异,后面详细讲解 查询类型: 例如:match_all, match,t
阅读全文
摘要:1.IK分词器 (1)安装 使用IK分词器可以实现对中文分词的效果。下载IK分词器:(Github地址:https://github.com/medcl/elasticsearch-analysis-ik) 下载zip,并将解压的文件拷贝到ES安装目录的plugins下的ik目录下(注意:ik的版本
阅读全文
摘要:1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。 注意:6.0之前的版本有type(类型)概念,type相当于关系数据库的表,ES官方将在ES9.0版本中彻底删除type。上边讲的创建索引库相当于关系数据库中的数据库还是表?1、
阅读全文
摘要:用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如何能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如之前大家学习过
阅读全文
摘要:1.linux历史 Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮
阅读全文
摘要:后台系统的内容暂时告一段落,有了商品,接下来我们就要在页面展示商品,给用户提供浏览和购买的入口,那就是我们的门户系统。 门户系统面向的是用户,安全性很重要,而且搜索引擎对于单页应用并不友好。因此我们的门户系统不再采用与后台系统类似的SPA(单页应用)。 依然是前后端分离,不过前端的页面会使用独立的h
阅读全文
摘要:1.编辑按钮点击事件 在商品详情页,每一个商品后面,都会有一个编辑按钮: 点击这个按钮,就会打开一个商品编辑窗口,我们看下它所绑定的点击事件:(在item/Goods.vue) 对应的方法: 可以看到这里发起了两个请求,在查询商品详情和sku信息。 因为在商品列表页面,只有spu的基本信息:id、标
阅读全文
摘要:当我们点击新增商品按钮: 就会出现一个弹窗: 里面把商品的数据分为了4部分来填写: 基本信息:主要是一些简单的文本数据,包含了SPU和SpuDetail的部分数据,如 商品分类:是SPU中的cid1,cid2,cid3属性 品牌:是spu中的brandId属性 标题:是spu中的title属性 子标
阅读全文
摘要:1.SPU和SKU数据结构 (1)SPU SPU表: 与我们前面分析的基本类似,但是似乎少了一些字段,比如商品描述。 我们做了表的垂直拆分,将SPU的详情放到了另一张表:tb_spu_detail 这张表中的数据都比较大,为了不影响主表的查询效率我们拆分出这张表。 需要注意的是这两个字段:gener
阅读全文