技术分享-商品搜索(四)

技术分享-商城篇系统概览
技术分享-商场篇系统首页
技术分享-商城篇商品设计

介绍

咱们接着前面说的商品设计继续探索商品模块,接下来我们聊一下商品搜索,搜索功能并非是商城的独有功能,而是所有软件系统所必备的基础功能,它的重要性不言而喻,但是每一个行业类型的搜索,其内部功能都是天差地别,里面的设计逻辑也是不一样的,就商品搜索来说,它是用户找到自己心仪产品的直接导航,若是我们在做商城系统时,设计商品搜索偷懒或者不知道怎么做,随便搞一个搜索框暴露给用户,然后就直达咱们内部数据库,那就是一种灾难,这也是外包项目(也是外部研发被鄙视最主要的原因之一)最经常干的事,所以我们在设计搜索的时候,除考虑最基本的参数过滤、校验外,还得增加其安全性、并发性等,要让搜索不能随便接收垃圾,提交垃圾搜索,穿透到我们内部数据库。

技术架构

很多中小企业的商品搜索使用的技术架构有最原始的走查数据库模式和借助第三方搜索引擎(例如:ES、Sphinx、Solr)等,第一种直接走数据库就不说了,就简单聊一下利用搜索引擎做商品搜索库,其中就拿ES简单聊一下,怎么用ES来做搜索,首先我们需要准备搭建ES服务(最好交给专业的人来做,比如运维,但要是只有你一个的话,那就用最原始的吧,简单点后期也方便,也可以用云搜索,例如:阿里云、腾讯云之类第三方平台搭好服务,只需要给钱就行,具体怎么搭建ES服务,这里就不说了),接下来就是需要建立商品库索引,我们需要在管理端(商户端)发布商品,要把相关商品名、价格、销量、库存、业务属性(通用名、规格、厂家、批号)等等,涉及商品的属性都同步到ES服务,做好商品索引和切词这是搜索的关键,而在商品相关操作变更的过程中,也需要把数据同步ES,要保持ES库里的商品和你数据库的商品信息一致,这样才能保证你搜索出来的商品不会出现和数据库不相匹的问题(这个节点很重要,因为在实际业务中,很多在建立商品索引和构建商品信息时,缺漏了某些环节,会导致搜索出来的商品已经下架、没有库存或者商品重新上架没有及时同步过去,会导致搜不出和乱搜的情况,反正就会很迷惑),所以我总结一下数据同步的相关接口

1. 发布和编辑商品-实时更新[队列]
2. 商品上下架
3. SKU更新
4. 商品审核
5. 商品属性更新「置顶、热卖、新品、推荐」等操作
6. 库存更新[对应SKU级再同步到商品级,分为:扣减和增加]
7. 商品全量同步-初始化时操作
8. 商品增量更新-以更新时间定时同步
9. ES索引的同步

以上的接口设计,能满足大部分的业务,主要关键点就是在于同步商品到ES时,ES服务需要一定时间更新上传的数据索引,这个需要关注。至于ES操作方法可以参考官方文档,再根据实际业务进行处理。

商品搜索逻辑

热搜商品

我们在每个购物平台搜索商品时,都会看到一个热门搜索,这其实是平台一个营销的策略,可以通过近期用户的对某些关键词搜索,通过算法统计挑选出符合当前用户行为搜索词,也可以是平台在后台根据销售最好的商品筛选出来的关键词或者直接就是商品等,因为我们在搜索的时候,其实平台就已经收集了我们的搜索词,这些搜索词是缓存到内部服务数据库,例如MongoDB文档数据库(最好不要直接存到我们的关系型数据库,例如:Mysql,oracle等其他类型数据库,搜索词量过高且频繁会直接穿透我们数据库,使数据库性能下降)或者直接存到ES都可以,这样我们就可以通过词频进行分析,且利于后期的做大数据分析。

历史搜索

历史搜索顾名思义就是之前用户自己搜索过的关键词,此类词都是用户曾经使用过的,记录在用户的客户端,交给前端就行,只要做好数据的加密即可。

切词搜索

我们在搜索时候,是否会发现每输入一个字,搜索栏就会关联出相关字或者词的商品,这就是用到了搜索引擎的切词搜索功能,可以快速的为用户分析出他最想要的商品和数据,并进行提醒这类商品平台都是存在,以淘宝为例,可以参考附图
切词搜索
我只是简单输入了“书”的关键字,平台通过切词搜索功能,自动关联出相关商品,若是使用数据库来做这个功能,就得频繁的去查询数据库(DBA会爱死你的),所以专业的事交给专业的工具来做,不是人家的活就不要啥都交给人家来处理了。

页面布局和注意事项

通过前面基础搜索介绍,我们了解商城搜索基础功能和接口设计,接下来我们再来聊聊在搜索商品页面,我们需要做哪些事,需要用到哪些接口,使用哪些标签,并且更快速的为用户找到他最满意的商品,我们以移动端为例(PC端已经没落,谁还没事搬出电脑,用电脑购物,就连电电商平台也大多不支持或者不在更新系统,所以我们接下来的文章都是移动的设计布局为准)首先我们看到通过移动的搜索进来,除商品基础信息(图片、名称、价格、销量、标签、商家等),顶部还有搜索排序例如:销量、价格等,侧边还有一个筛选的操作,里面包含有价格区间、店铺、包邮、送货上门、产地等(根据实际业务进行调整),以上是最基本的商城搜索页面布局,其内部内容可以自行调整,注意事项和接口

1. 商品搜索列表接口:通过用户输入关键字,从ES服务中获取商品数据
2. 筛选接口:价格区间、店铺、包邮、送货上门、产地
3. 搜索参数安全过滤,避免某些同行给你开玩笑(尤其是直查数据库搜索同学)
4. 搜索时需要登录,除了安全以外,还能收集用户搜索记录,便于后期给用户推荐他喜欢的商品(实际是比较讨厌的,老板喜欢就行)
5. 商品排序,除了关键默认推荐排序外,还得为自己的自营商户做推广(非必要)

总结

通过这篇文章,想必之前没有做过商城系统的同学,内心也有一定思路,而我为什么要把商品篇拆成几个小单元来说呢,我在第一篇文章就有谈到,电商系统核心功能之一,就是商品库,它是电商系统的基石,而本篇内容我只是简单聊了商品篇之一的搜索篇,后面还有类目商品、相关商品、推荐商品、商品详情等内容,这些功能是组成商品篇最核心的部分,所以我尽量会把这些子模块拆细一点来解读,下一篇商品我会聊一下类目商品、相关商品以及推荐商品,商品详情需要单开章节来聊,感谢各位耐心阅读,谢谢

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bobo-rs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值