首页 > 编程知识 正文

搜索型产品(自己怎么做搜索引擎)

时间:2023-05-04 23:57:15 阅读:101247 作者:4396

搜索这种产品形态是典型的轻前端、重后端,看起来是个小吧台。如果要进入产品设计阶段,如果要完整描述这个过程,还需要考虑很多维度。今天就来说说这个话题。

虽然我自己没有专门搜索过产品,但是我接触过一些产品,因为我体验过的产品以内容为主,搜索是标准的。今天,我们来谈谈构建一个完整的搜索需求框架需要考虑哪些维度。

先看界面,完整的搜索功能至少应该包括:搜索门户、搜索主页、搜索结果页面和三大页面。我们一个一个来说。

搜索条目

也就是向用户公开,用户可以在这里找到搜索功能。通常有三种呈现方式,根据重要程度分为图标级、横幅级和页面级。图标级是在整个页面的角落放一个可点击的放大镜图标,通常在左上角或者右上角;在列级别,搜索框由顶部水平条展开;页面级将应用程序的底部选项卡贡献给搜索,这通常称为搜索或发现。例子如下:

一般以搜索为主的内容类别采用横幅级别。一方面不占太多空间,另一方面能让用户觉得足够,横幅提示文字(灰色占位符)也能引导用户搜索商业化。交互方面,为了方便用户检索,有些产品在用户向上滑动屏幕时,也会将搜索框放在顶部(如知乎)。

搜索主页

如果门户是页面级的,那么主页就是门户页面。然而,大多数搜索模块在用户点击门户后会给他们一个相对独立的搜索主页。该首页建议包括搜索框、热门搜索词、历史搜索记录三个模块,如下图所示:

搜索框是核心功能,但它是最简单的界面布局,也就是一个横条,加上一个取消按钮,也就是返回按钮。从交互的角度考虑有两点。第一个是默认光标焦点是否在输入框,输入时是否弹出键盘。二是搜索框的占位符是否需要显示,显示什么,规定如果此时进行搜索,默认会搜索占位符。

有两个流行的搜索目的。首先是告诉用户他们在搜索什么,间接增加内容点击率。二是将关键词暴露给广告主,作为广告位使用。设计热门搜索词时,要考虑词条的外观规则、更新规则和排序规则。36Kr采用机器计算人工筛选的方式,每小时更新一次,热度判断相对简单,即关键词命中率最高,取逆序。其实还有更大的优化空间,比如根据热词点击、热词上升速度等维度优化排名模型。

搜索历史比较简单,就是记录每一个搜索词,倒排搜索时间。在此期间,有两点需要注意。首先是编排方法。因为搜索词的长度无法预测,所以以列表的形式记录搜索历史更为灵活。但如果觉得太占地方,也可以直接以标签的形式展示。如果单词太多,在中间用“…”。二是对文章数量有上限,而不是记录所有的历史。如果这个数字超过某个数字,前一个数字就可以加满。

搜索结果

在设计结果页面时,我们需要考虑可搜索实体的类型、搜索命中规则、命中后结果的排序规则、命中后结果的显示样式以及未命中结果的显示样式。模块的大致分布如下:

接下来,我们来谈谈对这些元素的思考。

1)可搜索的实体类别

也就是说,明确你希望用户搜索什么。以36Kr为例:文章、简讯、音频、视频、作者、话题、话题。不同的实体有不同的命中规则,不同的显示风格,不同的关键词匹配需要考虑,所以识别这些实体是第一要务。另外,对于纯搜索引擎产品,底层只有一种搜索实体:网页,但也可以根据网页的特征提取一些独立的实体,如图片、视频等,多维度可以满足搜索目的。此外,以百度为例,将通过搜索引擎在一定程度上布局自己公司的产品矩阵,进一步满足用户多元化的搜索需求。也就是说,除了“网页”,还可以搜索——百号的新闻信息进行引流;问题——百度知道引流;文档——百度文库引流等等。

9e?from=pc">

2)搜索命中规则

命中规则是搜索产品最核心的部分,一方面需要提取入库实体文本的特征值,另一方面还要对输入项进行分词,最后将搜索词和实体特征进行匹配。对于匹配规则,有简单和复杂2种做法,最简单的就是产品经理规定好哪些实体的哪些字段,完全/模糊匹配到搜索词,就算命中了。比如36氪,就是规定文章的标题、简介,只要包含搜索词即算匹配。但这样做可能导致结果过少、也很可能会误判,比如搜“忧虑的口红”,匹配的是“神忧虑的口红搜索”的报道。因此更复杂的做法,需要对可搜索实体进行文本的词频提取,选取其中被提及最多的关键词代表该实体,哪个更贴近搜索词,哪个的命中率就越高。这里面用到的经典算法就是:TF-IDF。

3)命中后的结果排序规则

有匹配就有排序,通常比较复杂的搜索引擎,默认排序是基于一套权重计算公式来打分倒排的。这个公式,一方面要考虑被搜索实体的“质量”,代表算法是:PageRank;一方面要根据特定实体的特色设计专属计算公式,比如文章的权重是基于:PV、UV、发布时间、是否独家、是否原创、点赞量、分享量、评论量来计算,视频的权重要额外考虑完播率,作者权重则是考虑作者发文数等等。搜索结果的综合排序规则通常是不开放的,因为权重经常调,也为了防止SEO作弊,但站在用户角度,也希望能给予其自行控制排序规则的功能,因此可以考虑允许用户在基础搜索结果下,按某个单一维度排序,比如36氪就提供:相关性、发布时间两个维度的选项:

4)命中后的结果展示样式

搜索结果展示页,从结构上要考虑2个维度,第一是综合搜索结果,第二是单一实体结果。综合搜索通常显示的是所有实体的搜索聚合页,一般从上到下分区块呈现,同时提供单一实体页面的跳转入口,而单一实体结果页,可以是以顶部Tab的形式供用户横滑跳转。不同实体的结果样式,要充分考虑UI的一致性,以统一模板展示。以36氪为例,文章、快讯、音频、视频等样式,和首页频道信息流的样式是基本一致的。如下图:

此外,还要考虑踏实的万宝路用户搜索关键词,让用户知悉为何会搜出对应内容。

5)未命中的结果展示样式

搜索无结果时,一方面要友好告知用户,另一方面可以利用这个页面的曝光机会,给用户其他选择建议,比如他可能感兴趣的其他栏目文章,或者全站热门内容等等,完成内容的二次分发:

OK,到此,我能想到的搜索模块产品设计思路就是这些了,当然肯定没专业的搜索产品经理考虑的全面,而搜索又是个强技术驱动的产品,因此如果想真正把搜索做好,还要在充分了解其底层实现原理的前提下,基于用户需求场景去预测其想要的结果,从数据上观察CTR、召回率和bad case,持续调优。

以上就是今天想和大家聊的,会对你有帮助么?期待你的回复与我分享~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。