搜索功能作为最常用也是最不起眼的功能,很多人日常会比较容易忽略它的底层逻辑,设计的时候基本都是一个搜索框解决。先不说我们手机中常用的几个软件的搜索,就算稍微复杂一点的b端产品,这样的设计在迭代评审上只会受到开发同学的迷惑注视。

明确搜索场景

搜索场景主要分为三种,无论是上某淘搜关键字买东西,上某百搜具体信息还是上某b上看推荐的up主。

这三种场景分别是:

我明确我想要什么,输入全信息量条件搜结果

我明确我想要什么,但我只知道部分条件搜结果

我不知道我想搜什么,随便看看

第三种在目前的娱乐性产品中,更多用推荐或猜你喜欢等功能替代,这里我们主要针对前两种搜索做分析。

你要明白开发眼中的搜索流程

我们先来看一下搜索的全流程,基于流程中的要点我们逐一分析。

首先是输入搜索条件的即时匹配,结合热搜或者历史记录,这样的功能,相信大家都遇到过,这样的设计一般在c端产品上会应用的比较多,主要也是因为流量以及海量内容的缘故。对于功能性的b端产品,可结合实际场景判断是否需要。

接下来的搜索解析,主要是将输入的条件进行处理然后匹配结果。一般的b端产品,会比较简单,用精准和模糊两种匹配方式去查找结果。

c端场景则应用的逻辑会比较多,分词、纠错、近义词等等。比如像下图这样搜索,它会将你的条件进行拆分,而且还会自动匹配语意相近的结果。

接下来就是数据库检索,这一块主要注意两点。第一是检索条件的优先级,第二就是如何提高检索的效率。前面我们有说到b端场景会有一些稍微复杂的情况,如果一个搜索框支持同时搜索多种类型,那么你就需要定好检索的优先级。

像图中这种例子,标题和内容可能都会存在同样的内容且都是模糊搜索,优先级的规则是一定要确定好的。不然开发同学就要夺命三连问了。

第二点主要是提高效率,举个例子,如果你的标题和内容中都有上千条含有‘商品’二字,输入商品搜索时,假设优先级先检索标题再检索内容,流程就是检索出所有的标题再检索所有的内容。此时,用户等待的时间是非常影响体验的,而且也浪费了资源。

为了避免这种情况,我们会做相应的限制。设置检索的数量,并设置后段的分页。检索500个匹配项时,我就停止标题检索,直接检索内容。

但有的同学会问,那如果我想要的内容刚好没有检索出来怎么办?针对这种情况,我们首先站在场景上考虑,如果如果搜索规则是模糊搜索,用户输入的条件是不是比较宽泛导致结果项太多,那我们就可以给予用户提示,输入更多关键词来增加与结果的匹配度。

第二点就是,如果我搜出来的结果项真的很多,用户是否真的会一条一条去看,显然是不会的。我连百度搜索,翻到第二页我都要纠正一下我输入的条件,像我这么追求效率的男子怎么会一条一条去找呢,搜索的本质不就是为了把结果放到我们的眼前吗。

最后关键的一点就是权重排序,b端产品一般来说,我们的结果权重一般会和检索优先级保持一致。也就是先搜什么,就先展示什么。当然如果你的业务还有其他权重,你也完全可以将权重排序作为单独的逻辑规则。

拿微信的搜索举例,如果没有选择具体结果类型,综合搜索结果页面它会有自己的权重展示。

以上的设计一般在b端产品领域已经足够了,当然如果是c端场景,更多会结合算法以及机器学习。可能光是搜索条件解析,试图理解用户意图这一步都会有很大的优化空间,大家有进一步需求的,也可自行学习。

希望这篇文章能给你带来一点启发,我是红尘,我们下期见!(公众号:都市摆渡人)

搜索功能这样设计,大家都说我有点东西相关推荐

  1. 测试入门——搜索功能测试用例设计

    对被测试点进行分解,把测试用例分解为多个测试场景 场景编号 场景描述 预期结果 场景一  页面检查 正确 场景二 默认条件搜索 查询结果正确 场景三  修改可选条件搜索 查询结果正确 场景四  修改输 ...

  2. 搜索功能:洞悉产品的绝佳入口

    提到搜索功能,想必所有人都不会感到陌生.有关搜索功能的文章有很多,它们大多谈论的是搜索的方式,搜索结果的优化等.不过今天我们将从全新的角度来看待搜索,将它作为洞悉产品的绝佳方式,充分利用该功能,能够迅 ...

  3. 基于微信云开发的微信小程序之搜索功能的实现

    文章目录 搜索功能的设计 代码逻辑 页面设计 效果展示 搜索功能的设计 功能描述: 该模块主要是基于云开发实现小程序搜的搜索功能.如果搜索框输入为空或直接点击搜索按钮,显示对应弹窗:如果搜索框输入内容 ...

  4. phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它

    来源:太平洋电脑网 我们知道微软在Windows 10中,特别加强了系统的搜索功能,但Windows 10的搜索的确很难称得上好用.抛开效率低下.呈现结果少.造成系统卡顿等老生常谈的问题不论,在功能设 ...

  5. 面试题 | 设计twitter搜索功能

    题目 现在你是twitter搜索负责人,设计搜索系统,提供图片.文字搜索 用户1.5 billion,日活800 million 每天新增400 million tweets (每个tweet大小30 ...

  6. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  7. windows10搜索网络计算机,教你如何关闭Win10搜索的网络搜索功能

    我们知道微软在 Win10 中,特别加强了系统的搜索功能,但 Win10 的搜索的确很难称得上好用.抛开效率低下.呈现结果少.造成系统卡顿等老生常谈的问题不论,在功能设计方面,Win10 搜索也有硬伤 ...

  8. PHP站内搜索功能(laravel自带Scout驱动+elasticsearch)

    站内搜索 由于最近做的网站需要用到网站的站内搜索,我也是偷偷摸摸学了一手,希望有需要的朋友也可以看看 搜索引擎 Elasticsearch 官方网站 https://www.elastic.co/cn ...

  9. 梦幻西游藏宝阁不显示服务器,梦幻西游玩转藏宝阁 全服搜索功能体验 17173.com网络游戏:《梦幻西游》专区...

    梦幻西游藏宝阁终于推出了自己的全服务器搜索功能,下面就请跟随梦幻西游记者-氢气来一起体验下藏宝阁全服务器搜索功能吧. 我是买家1.搜索功能免费,包括公示期内上架的物品 2.将可对装备.召唤兽进行详细搜 ...

最新文章

  1. 解决导入.vdi文件时报“uuid is exists”错误
  2. Qt OpenCV Win10环境配置
  3. 线程在Linux中的实现
  4. pat德才论(java)
  5. 共享数据库、共享数据表
  6. leetcode513. 找树左下角的值(dfs)
  7. php文件里搜索关键字,php - PHP从文本文件中搜索关键字(Action'),使用该关键字打印所有行,然后计算打印的行数 - SO中文参考 - www.soinside.com...
  8. 查看pem证书的ASN数据结构的方法
  9. python按照日期筛选数据_Pandas日期数据处理:如何按日期筛选、显示及统计数据...
  10. 将图片的二进制字节字符串在HTML页面以图片形式输出
  11. 抱怨一下有些邮件列表的气氛
  12. 【3月22日】2022年百度机器学习春实习笔试题解
  13. Papervision 3D的简介
  14. 雨中拍照:廉价好用的自制伞架
  15. adb shell appops(系统服务:appops)
  16. 核心案例|中国民用航空飞行学院半实物飞行仿真平台
  17. 黑白照片怎么上色?学会这招轻松解决
  18. 2021-2025年中国非结构蛋白4B行业市场供需与战略研究报告
  19. supervision
  20. ScrollBar ScrollWindow

热门文章

  1. 了解源代码管理工具——Github
  2. 基于GAN的语音转换技术及语音合成TTS
  3. java编程之拼图_Java编程制作拼图游戏
  4. 防止后缀aol.com}AOL勒索病毒*** .com}AOL勒索病毒解密工具处理方法
  5. [高数][高昆轮][高等数学上][第一章-函数与极限]10.闭区间上连续函数的性质
  6. C# DGV常用操作
  7. 女程序员如何在朋友圈报喜-笑的我肚子疼
  8. Linux之日志服务及管理
  9. 微信开发者工具 Source Map 的使用
  10. 如何在手机查看电脑html