系统学习运营课程,加入《91运营网VIP会员》,开启365天运营成长计划>>
搜索从宏观上来看有两种,一种是搜索引擎,另一种是垂直搜索。搜索引擎有 Google,Bing,百度,搜狗等等,而垂直搜索则是在大多数产品内置的对内容的检索功能。此处仅讨论垂直搜索。 一、搜索的核心 ● 根据提供的已 知信息,给用户提供符合各方利益诉求的内容。 利益诉求包括:用户的利益诉求(如优质的内容)与产品的利益诉求(如搜索引擎广告) ● 性能:快速的提供内容 ● 展示结果时,考虑用户体验 比如 Airbnb 算法中考虑的内容有: ● 搜索主体的历史偏好 ● 搜索结果的质量 ● 整体的平衡(新房源的适当倾斜) 二、搜索的几个主体 ● 搜索的用户 ● 输入的内容(关键词/图片/语音/二维码) ● 搜索结果(屏蔽部分结果) ● 搜索结果的排序方式。 一个简易的搜索功能,可能有关键词+搜索结果就可以。但是一个完善的搜索功能,却要通过对搜索主体偏好的猜测,对输入内容的语义分析,对搜索结果的质量评估分析,对搜索结果的排序方式机器/人工调整为用户呈现适当的结果。 谈到搜索的主体,时常关联的词汇是『大数据』,通过分析用户的行为来对用户建立起立体的用户画像,从而为用户推送合适的内容。譬如搜索引擎中广告的,会根据用户的过往搜索与浏览历史进行不同的展示。 大多数搜索并不需要考虑到搜索主体(鉴于收集用户信息分析用户偏好的成本非常高),需要考虑到搜索主体的,要不是提供内容,要不就是是提供商品。 输入的内容 这里一共要谈两个部分,一是输入的内容,即关键词(或其他形式的输入),二是对输入内容的分析。 输入的内容主要有以下几种类型,文字(如 Google 和百度)、图片(百度、Google 、淘宝的图片搜索)、语音(Siri 和出门问问)、二维码等。 淘宝的图片搜索 狭义的搜索输入的内容主要是文字形式的关键字。并通过关键字匹配来寻找搜索结果。 另外,这里有很重要的一项会影响到搜索结果质量的功能,那就是对输入内容的分析(通常情况下是两种,一是语义分析,二是图片识别)。 搜索的核心在于通过用户的输入判断用户的需求,从而给出搜索结果。这里对于用户输入内容分析的能力就直接影响到搜索功能的质量。劣质的搜索功能无法分析语义自动分词,只能给出完全匹配的结果。譬如,用户输入『大连衣裙』,劣质的搜索功能就有可能给出这样的结果『大连』『连衣』或者根本无法显示匹配结果。 语音搜索的分析也是通过语音识别将其转化为文字,然后进行搜索。因此不提。 搜索结果 搜索引擎的结果有各式各样的结果,而在应用内的垂直搜索也有可能有多种类型的结果。而大多数产品的做法是将搜索结果按照类型分为几种,用户可以点选 tab 按钮切换。 网易云音乐的搜索结果 筛选、排序方式 对搜索结果的排序分为默认排序和选择排序。 产品内的默认排序通常是多种方式下的排序。例如百度,搜索结果下的默认排序可能考虑了网页的质量、相关程度、广告、发布时间、是否为百度的自家产品等。 但大多数产品会提供一种自定义的筛选和排序。例如淘宝,各种产品的数据高度结构化,可以通过不同维度进行筛选和排序。 手淘的排序 手淘的筛选 在理想情况下,搜索结果的默认排序应该有算法完全决定,越少的人工参与越好。但事实上大多数产品其实并不拥有那么强大的搜索算法,大多数产品也并不需要那样强大的搜索功能,这时适度的人工干预就很重要了,不仅可以保证搜索结果的质量,还可以根据盈利方面的考虑对搜索结果进行调整。 三、其他的搜索 搜索不一定是一个独立的功能,相信细心的你也曾发现过内嵌在其他功能的搜索。 你想到了什么呢? 不知道你想到的和我想到的是不是一样,那就是『微博』 微博和 Twitter 在发布的时候有一个特别的小功能,@(提及某人)和#(带上话题)。这个操作虽然有一定的学习成本,却是一个非常有巧思的设计。 Twitter中的@功能 Twitter 中的#功能 四、如何设计一个优雅的搜索功能 以上说了那么多,似乎都没有涉及如何设计搜索功能。 我认为设计搜索功能,甚至任何一个新的 feature 都应该首先考虑的问题是:为什么要增加这个功能,这个功能要解决什么问题,解决这个问题对于产品有多重要。 在理想情况下,我们都想做出一个比百度更好的搜索引擎,即使是在应用内。但是实际进行过程中我们会遇到各种各样的限制,这包括了有限的工期,有限的技术资源,有限的技术能力等等。除此之外,还有一个更现实的问题是,我们需要那么强大的搜索功能吗? 任何的投入都要讲求性价比,投入不仅包括金钱,还包括时间,尤其对于互联网企业来说,早期的时间都是非常珍贵的,必须要用到投入产出比最高的功能上。如果你是一个小的电商网站,SKU 不过几千,数据也不够结构化,那一个强大如淘宝搜索的功能很大程度上是浪费的。任何时候都要寻找当前阶段下的 MVP(最小化可行产品)。 以上是起步前要了解的第一个问题:搜索功能的范围控制 第二个问题是,搜索的算法。 算法是在搜索功能设计过程中最头疼的部分,如何确定算法呢? 由于算法直接决定了开发的工期,所以需要根据考虑实际的资源情况,数据的结构化情况和产品的实际需求。 - 最简化版:根据与关键词的匹配程度显示 - 简化版:加入搜索结果的权重(可以人工,也可以用算法赋值) - 中间版:加入人工调整位置 - 复杂版:无限制,加入各项考虑,如用户的个人偏好,相似用户的偏好,产品的整体政策等。 算法这里,我也是门外汉。没有参与过非常大的搜索引擎项目,所以只说到这里~并不是偷懒哦,只是能力所限。 第三步是,搜索的交互 同搜索的算法不同,搜索的交互可以给用户直接的观感。『交互』比『算法』的改进更能带给用户明显的感受。 交互的设计通常有以下几个方面 - 搜索页面 - 内容输入过程 - 搜索结果的展示 - 搜索结果的筛选与排序 详细的内容可能需要展开另外一篇文章来描述,此处就不细讲了。 — END — 作者:张小四儿,个人公众号:张小四儿的产品笔记(ID:xiaosierzhang),欢迎关注。 |