| 简介
作为用户快速找到理想商品的主要手段,搜索在电商平台中占据着举足轻重的地位,而把搜索做好则需要各部门的通力合作。本篇文章概括介绍一下电商平台中的搜索,其中会涉及到用户、技术、商家和运营等各个方面,这其中的每个点都可以衍生出很多细化的内容,我了解的有限,先抛砖引玉,给大家提供一点思路。
| 整体流程图
衡量搜索效果的标准有两个:召回和准确率(即相关性),下面我们就从这两个标准看看如何提升搜索效果。
| 提高召回
要提高搜索结果的召回数量,需要把商品属性中能用于搜索的关键词尽量都用于搜索,主要包括:
类目:商品所属品类,比如裙子、裤子、鞋等
标题:商品的标题,为了手机上的展现效果,一般会限制字数
标签:商家设置的突显商品特征的关键词,一般会限制每个词的字数和总词数。
属性:比如领型、袖长、尺码等
属性值:比如v领、长袖、xxl等
商品简介:一般仅用于商品展示,有的会纳入搜索,不建议纳入搜索
由于这些信息都是商家填写的,而有些商家为了提升商品的搜索量,可能会堆砌关键词、蹭热点等,使得信息不完全准确,在这些信息都纳入搜索的同时,搜索结果的准确率肯定会大幅下降,这就需要我们采取一系列的措施来提升搜索结果的准确率。
| 提高准确率
由整体流程图中我们可以看到,影响搜索准确率的有两方面因素:底层数据和上层技术。下面我们从这两方面看看如何提升搜索结果的准确率。
| 底层数据
1、类目属性属性值规范化
a、规范系统数据
我们设计了一套类目属性属性值系统,系统开始之初,从某宝抓取数据,运营同学一个个的全部都过了一遍,来保证提供给商家的类目和属性值都是准确无误的,然后对老数据统一进行了一遍清理。
系统上线之后,运营同学可以在后台对类目属性属性值进行优化更改,如果涉及类目调整,类目下的商品会自动同步到新类目下。熟悉某宝的同学应该清楚,类目调整因为涉及到类目下的商品的调整,是比较复杂的任务,我们把它自动化了,后续有机会可以单独介绍一下这个系统。
b、关键词意义标准化
运营同学整理出各类目所有关键词的标准,对商家进行培训,做到运营和商家对关键词的理解标准统一,比如什么样的鞋是豆豆鞋等。
c、前台类目和后台类目
前台类目是用户可以直接看到的,展现在前端的,会随着季节、时尚度等不同,后台类目是给商家发表商品时选择商品的属性的,是相对稳定的,它们直接会通过一系列规则建立联系,确保了频繁变化的前台类目的改动不会影响到相对稳定的后台类目。
2、审核机制
商家发布的商品需要经过审核才会进入搜索,呈现给用户,审核又分为机器审核和人工审核。
机器审核:对于包含一些互斥词的商品,会直接审核不通过,比如某商品的标题中同时包含了长裤和短裤。同时机器审核会对同款商品直接标记为同款,不用再进入人工审核,电商提倡商家自己拍摄图片,如果是从档口拿货,那么第一时间上传商品,更有可能会标记为原款,其他相同的图片都会是同款,原款在瀑布流中的排序有明显优势。
人工审核:机器审核通过的商品会进入人工审核,由于商品量太大,人工审核也包含了全量审核和随机审核。运营会对商品的类目、标题和图片进行全量审核,对商品的标签、属性和属性值进行随机审核,随机也是通过一系列的算法取出来的,比如热门榜单的前300商品、ctr大于1000的商品、cpc + 黄金橱窗 + 高ctr +2级以上商家的商品等。人工对图片进行审核时,会对商品的流行度进行打分,流行度也会纳入搜索排序中。
巡榜工具(chrome插件):每天会有运营同学对热门瀑布流查看效果,对于错误展现的商品会直接用巡榜工具(chrome插件)审核不通过。
商品审核的状态、场景也非常多,有时间可以另启一篇,详细介绍。
3、规范商家
a、限制
不同等级的商家每月上新量不同,比如:等级为3的商家每月可上新数量是300,等级为5的商家每月可上新数量是500。商品的sku颜色图需要跟商品主图尺寸一致属性有必填和非必填,单选和多选之分一个商品只属于一个类目投了cpc广告的所有的sku颜色图都会进行审核,未投广告的进行抽审(优化搜索效果,比如红色毛衣,会展示sku颜色图中的红色的图,而不是展示商品主图)b、奖励和惩罚
商品的审核通过率跟商家等级挂钩选出每个等级商家关键词一次通过率最低的n个商家,由运营同学联系沟通不同等级关键词一次通过率高的商家,可以获得额外的发商品数量奖励,或者黄金橱窗位的奖励对关键词一次通过率特别低的商家进行限制上新| 上层技术
1、分词
网上有很多分词词库,可以找个电商领域的,根据自己的业务场景再进行改进、优化。
2、sphinx分布式搜索引擎
sphinx是一个基于sql的全文检索引擎,可以结合mysql,postgresql做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。sphinx特别为一些脚本语言设计搜索api接口,如php,python,perl,ruby等,同时为mysql也设计了一个存储引擎插件。
sphinx的主要特性包括:高速索引;高速搜索;高可用性;提供良好的相关性排名、支持分布式搜索;提供文档摘要生成;提供从mysql内部的插件式存储引擎上搜索、支持布尔,短语,和近义词查询;支持每个文档多个全文检索域(默认最大32个);支持每个文档多属性;支持断词;支持单字节编码与utf-8编码;
3、策略
a、索引上对关键词做分级,标题、标签、类目、属性值的权重不同
b、降低没有进关键词审核的商品的排序
c、新品测款
瀑布流排序,上新权重降低,热销权重增加,每个店铺可以选出几个要测款的新品,优先审核这些新品。
| 迭代优化
1、目标
热门瀑布流:前300商品,错误率小于5%
冷门瀑布流:前300商品,错误率小于20%
热门和冷门的定义可以根据业务来定,比如gmv>1000的、在首页有入口的、gmv100的等。
2、措施
a、定时分析(一周一次)
使用评估工具定时分析瀑布流搜索结果的召回和准确率
运营同学评估绝对客观(类目)和非绝对客观(风格)瀑布流的准确率,汇总错误case,分析错误case
b、具体问题具体分析
case by case的分析错误case,根据错误case实时调整以上策略或分词优化。
| 其他
影响到瀑布流排序的因子非常多,比如cpc广告、商家等级、上新的时间、商品销量等等,并且这些因子也是在不断变化中的。上面分享的内容只是把基础数据搭建好,至于排序,需要搜索专家们不断的寻找各方的平衡点。