三步打造电商搜索后台方案

三步打造电商搜索后台方案

搜索功能,可以做到极度复杂和庞大,大公司有条件整个部分负责搜索,在小公司仅作为一个模块。如果电商产品中,用户搜索频率高,那么搜索是重要的商品和流量分发入口。搜索后台方案的矛盾点在于,它的优化需要有大量商品数据和用户行为数据积累,也就是使用越多,结果越准。有实力团队不可避免引入机器学习。对商品不多、用户量不大的电商团队,如何设计搜索后台最简方案?

电商中,搜索商品一般有两个入口:分类导航和关键词。前者不需用户手动输入,而以分类ID、名称或标签匹配,返回结果。以关键词搜索涉及到建立搜索引擎、分词、匹配、排序,场景可以涵盖以分类导航搜索,所以本文以关键词搜索为例,讨论后台方案设计。

首先看呈现给用户搜索结果,要满足什么目标?

  1. 在首屏可以一眼找到想要的商品
  2. 如果前几屏没有找到所需商品,所见内容应准确且丰富,想继续浏览结果列表或跳转页面浏览
  3. 结果准确情况下,列表排序规则清晰

上述目标,需要搜索匹配准确、排序浏览高效、加入运营元素补充搜索结果。

返回结果是否令人满意,有通用评价标准

  1. 召回率:能返回结果,需要商品数量足够大,也需要算法能匹配上足量商品数据
  2. 准确率:返回结果和用户意图匹配,都是想要的商品
  3. 排序:默认挑选效率最高的排序方式,并可以自由选择切换

如果以搜索“女士钱包”关键词为例,后台该如何匹配、筛选、排序到前端呈现?

匹配

直接用关键词匹配数据库字段,效率很低。通常会建立搜索引擎,将原始数据重构,做出供搜索系统匹配的“搜索数据库”。这相当于一个连接所输入关键词和商品数据的通道。

用户输入关键词,匹配搜索数据库时,也不是精确匹配,而会根据分词、同义词、短语、标签、分类多个维度匹配。分词之后还考虑是否取交集关系,比如“女士钱包”,可以分别找包含“女士”和“钱包”的元素,然后取交集。

除了关键词和搜索数据库匹配,还需要做意图分析。“女士钱包”,“女士”修饰“钱包”,用户本意更是想买钱包,而结果出现“女士背包”、“女士服装”,会不尽如人意,应该更多匹配“钱包”类型下的商品返回结果。

后台如何匹配,涉及到很多算法,业界也有成熟通用的解决方案,具体技术实现可参考商品搜索引擎资料整理

排序

在搜索结果丰富、准确度高前提下,如何排序让选择和浏览效率最高?

排序基于各项权重的打分,如果结果是一条条商品,权重分这几个方面:

  • 关键词匹配度
    • 分词关系:"与"关系, 偏重结果的准确率(precision),当搜索"AB"时, 结果需要既包含A也包含B;"或"关系, 偏重结果的召回率(recall):当搜索"AB"时, 结果可以是只包含A或只包含B
    • 文本匹配:算法基于TF*IDF
    • 商品描述、属性、分类等结构化信息
  • 商品销售属性,如销量、收藏次数、点击次数、评论次数、好评次数、差评次数、是否有货…
    • 最简单的三个权重由大到小排序为:月销量 > 收藏 > 点击
    • Badcase:比如一个商品销量多却评价差
    • 广告:属于商业化的范畴
  • 用户行为
    • 已购商品、客单价、浏览、收藏、购物车、配送地址
    • 人口统计学分类指标,如性别、年龄、收入
    • 登录信息:定位、时间、登陆次数

挑选出所需权重,建立规则和公式,给每条搜索结果打分。打分算法可参考搜索引擎排序。结果列表排序,一般按照默认打分从高到低排序,是淘宝、京东排序工具栏的“综合”,同时也支持手动切换按销量、好评、新品等维度排序。

呈现

电商产品初期,因为SKU少,常常无米下锅般无匹配结果,这时如何更不尴尬?

搜索结果列表最理想的呈现,应该像首页一样,可以无限刷。也就是就算无完全匹配结果,也不应该空荡荡一片留白或占位图,阻断体验。无论是否有匹配,结果中展示相关度最高的商品。只是这种方案,只用名字匹配容易穷尽,所以需要将商品所有纬度信息都和关键词匹配,属性、名称、标签、描述……,有一个匹配就上了,就呈现结果。

再一想,这样做,需要两个前提:1. 海量SKU,怎样都能匹配上关系十万八千里符合的商品;2. 商品打足量标签、多维度数据结果化,和关键词匹配,不然难以做到稍微准确

如果没有这两个前提,还是老老实实做推荐模块吧。推荐也有以下两种方案:

  1. 展示推荐商品瀑布流。所展示商品来源,有选择手动配置和自动推荐两种。手动配置无非选择热销、折扣、活动商品配上去,但运营千人一面配置商品,既和搜索关键词无关(代表着用户现在想要),也和过去想要的看过的无关,故不如算法自动化个性推荐。

  2. 展示其他热搜关键词/品类。本来已经没有关键词搜索结果了,其他热搜放在那里等于告诉用户,你要的没有了,其他人喜欢的你要不要看看,类似餐馆某个菜没了时候服务员说的话。这样体验不如个性推荐,加之离商品更远,展示效果不如商品瀑布流。

在搜索结果中,列表内容单元除了单个商品记录,还可以在列表中插入对应品类的热销品牌、人工运营的商品聚合页、专题频道页入口,让用户有兴趣(尤其在无想要结果时)浏览更多。

推荐阅读更多精彩内容

  • 栈 1. 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被...
    程序员高级码农阅读 4,561评论 0 11
  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 6,286评论 1 24
  • 开启内心喜悦的引擎,安驻身心,轻松愉快地回忆我今天种下的好种子。 我的人生使命:希望及由我的好种子开花结果成为幸福...
    快乐小屋刘丽华阅读 23评论 0 0
  • 今天精彩瞬間比較多
    毕饧阅读 32评论 0 0
  • 2017.06.05 MON. 阵雨 广州 上一次在简书记录早起是4月26日,践行早起的第66天。 经历了一个多事...
    微笑大媛媛阅读 103评论 0 1