搜索应该是我们日常使用最多的一项功能了。在产品设计中,搜索也是非常重要的,但其逻辑又相对比较复杂。这篇文章,作者带我们来梳理一下搜索的产品逻辑。

搜索场景无处不在,主要包括搜索引擎的搜索、平台商品搜索、平台文章搜索,还有一些数据库的简单搜索。但万变不离其宗,接下来主要介绍一下以商品 / 文章类搜索等为主的搜索流程及细节。

一、搜索流程

二、搜索入口

移动端的搜索入口常见于以下 4 种模式

1、位于底部导航栏

适用于搜索需求极高或者搜索是核心流量入口的产品,如微博、花瓣等

2、位于页面顶部

适用于搜索是重要流量入口的产品,如淘宝、知乎等。并会通过频繁变化的占位词引导搜索

3、放大镜搜索图标

适用于当前页搜索功能并非高频操作的页面,将顶部、底部导航栏等位置让渡给更重要的功能,搜索功能弱化为 icon 图标,如知乎的关注页、招行的财富页等

4、隐藏式搜索入口

不常用。目前仅在手机系统交互中出现,比如 iPhone 的下拉搜索

三、搜索方式

常见的搜索方式主要包括文本搜索、语音搜索、扫码搜索、拍照搜索

为了提高搜索的便捷性和转化率,又衍生出历史搜索、猜你想搜、热门搜索、链接搜索、复制搜索等

四、分析器

用户输错了怎么办?用户输入的这个关键词究竟是什么含义?分析器的作用就是对用户输入的关键词进行预处理、语义解析,实现对关键词的联想和优化系统对用户输入内容的理解。

1、预处理

1)长度截断:为了避免超长字符对分词搜索的压力,一般会限制关键词的字数,比如百度搜索控制在 38 个汉字以内

2)移除无意义字符:包括 emoji、特殊符号、颜文字等

3)格式转换:包括大小写转换、繁简体转换、全角半角转换等

2、语义解析

1)分词:根据分词词库将关键词进行拆分,如果输入的是词库未收录的关键词,可能就无法检索到关键内容了(除非完全拆成单字)

2)纠错:根据纠错词对用户输入的可能错误的关键词进行纠正,主要包括以下两种

① Non-word-Error:不存在数据库的错误字符

数字错误:2202 → 2022

英文错误:fght → fight

拼音错误:ping ’ pag →乒乓

首字母简拼:cpjl →产品经理

混合错误:cha 品 ji 理→产品经理

② Real-word-Error:由多个汉字组成的错误语句(拼写正确,但结合上下文语境表意错误)

漏字:产品理→产品经理

多字:产品经理理→产品经理

颠倒:经理产品→产品经理

同谐音:产品经历→产品经理

模糊音:产品尽力→产品经理

形近字:产品经哩→产品经理

当然,具体的纠错效果跟纠错词的可信度有关,可信度高时,会直接使用纠错词查询(提供原词备选),可信度低时,还是会使用原词查询

3)拼音转文字:比如将“ kangshifu 方便面”转换成“康师傅方便面”

4)归一:中文中很多词的含义是一致的,因此会通过近义词词库将不同的输入理解成相同的含义,比如“价格”、“售价”、“多少钱”等表达的都是价格的含义

5)停止词过滤:比如会将非法词、敏感词、指定的无意义词汇过滤掉

6)联想:调用关键词统计接口,实时获取排名靠前的数据。具体的 query 候选集的生成策略还会受用户历史记录、热搜记录和运营人工干预的影响,以便帮助用户尽快找到他们想要的内容

7)实体识别:借助实体词库,对输入的关键词进行实体含义的分析,比如将【康师傅红烧牛肉面】解析为【Brand:康师傅;Taste:红烧;SPU &CATEGORY:方便面】。当然,不同行业不同领域都会有自己的词库,差别比较大,因此词库一般都是不互通的

8)跳转规则匹配:比如输入到某个特定关键词时,跳转到特定的页面,比如某品牌的官网等等,且通常这种跳转是有时效限制的

五、召回

召回指的是将解析后的关键词与数据库文档进行匹配的过程。这个过程需要用到后端的倒排索引技术(构建单词与文档的关联关系)。一般来说,倒排索引建设得越合理,查询效率就越高。

六、排序

同样是在商城中搜索“水”,你觉得以下哪种排序更好?

结论:

左图:好,大众熟知的产品排在最前面。

中图:中,小众产品排在最前面。

右图:差,将仅包含“水”的汽水、爽肤水等排在前面。

下面以电商为例进行排序策略的介绍

1、粗排

考虑召回结果与 query 之间的相关性,并按照相关性模型进行打分,最终根据相关性从高到低排序。如果两个召回结果的得分一致,则按 ES 索引自行排序,因此每次搜索结果都有可能不同。

2、精排

在粗排基础上,考虑销量、收藏、点击、加购、促销等业务因素对排序的影响。

比如销量收藏高的靠前,比如最近门店正在跟某个品牌搞合作,则这个品牌靠前等等。

但是,这些因素要怎么量化呢?比如销量,不同商品之间无法直接比较个数,统计周期、门店等等也会对统计造成影响。所以这里就需要引入一个归一化公式,计算出一个业务因素的调整系数。比如初始销量是 50,系数是 0.5,那么最终得分是 25 分。再将此分数与相关性得分相加,得到最终的综合得分。

归一化公式参考:(商品订单数 — 门店最少的商品订单数 )/ (门店最高的商品订单数 — 门店最少的商品订单数 )

3、排序模型

粗排和精排都是建立在“业务规则”的基础上,利用的是专家对市场的了解;而排序模型则是利用机器学习、深度学习等技术构造千人千面的模型。不过这种方式只适用于用户数据量比较大的平台。

七、结果呈现

1、搜索结果的清晰呈现

2、个性化设计