3步阐述搜索框做了什么事情

news2024/11/16 3:19:18

搜索功能是几乎每个产品的通用标配功能,一个看似简单的搜索框背后,其实隐含了大量的设计思考和技术壁垒。本文将从三个部分阐述,为何搜索框并不简单。

本文将从搜索场景的思考、基于步骤的搜索设计以及搜索数据的追踪3个部分,对产品内部搜索设计的主要思路和常见的搜索规则做个简单的分享。

Part 1:搜索场景的思考

在设计搜索之前首先需要思考的问题是:谁在什么场景下会使用搜索功能?他想搜什么?

不同的产品有不同的答案,举几个例子:

1. 小红书

小红书的定位是生活方式分享社区,旗下设立了电商平台“小红书商城”作为变现业务,所以小红书的核心布局:社区+电商。

所以对小红书有认知的用户,主要在如下几种场景下有搜索诉求:

    想了解生活达人们对某类商品的推荐、评价;
    想在小红书商城购买某类商品;
    想关注某位达人。

由此,可以确定,小红书搜索范围在社区内容、商品、用户。从小红书搜索结果页TAB的分类看,也是按照这3类进行的划分,其中“全部”其实就是UGC社区内容。


 图1:小红书搜索结果首图

2. 网易严选

网易严选的定位是原创生活类自营电商,是一个纯电商平台,所以用户搜索诉求很单一:找到想要的商品。所以纯电商平台的搜索范围只局限于商品。

 图2:网易严选搜索结果主页

3. 知乎

知乎的定位是网络问答社区,连接各行各业的用户,用户分享着彼此的知识、经验和见解。

所以知乎用户的主要搜索诉求是:

    找到想了解的经验、内容;
    找到想关注的知识咖。

图3:知乎搜索结果主页

我们看知乎搜索的模块设计,虽然分为用户、话题、想法、专栏、电子书等分类。但是从本质上仍然分为:人和内容两部分。话题、想法、专栏、电子书等都属于内容一类,只是不同的内容形态、业务形态而已。

大多数情况下,会使用搜索功能的用户,主要是产品的老用户,对产品的基本内容和服务有一定的了解,并且有着非常明确的自身诉求。在这种场景下,如果用户能检索到自己想要的内容或服务,必将会产生很高的转化。

所以,搜索功能的重要性,不言而喻。

Part2:基于步骤的搜索设计

搜索最关键的是模糊匹配和知识图谱,至于如何实现,其实涉及到很多技术环节的研究。不过大多中小型公司都没有自己的算法团队,所以好多会选择第三方搜索引擎,例如:opensearch等。

不过作为产品,我们至少要提出我们需要满足的场景和基本规则,也有助于选择合适的第三方搜索引擎。在这部分,主要分享的就是:产品经理应该考虑到的搜索基本场景和规则。

看起简单的搜索动作,其实蕴含了几个复杂的步骤。因此,从产品设计上,需要按照步骤进行拆解,分别说明。

第1步:输入关键词

输入关键词这步主要考虑的包含2部分:关键词识别和关键词推荐。

(1)关键词识别

对于输入关键词的识别上,通常要考虑以下几种情况的搜索需求:

1)多字符串识别

假设用户提交了不只一个查询串,那么搜索引擎需根据分隔符,比如:空格、标点符号,将查询串分割成若干子查询串。例如:用户输入“气垫 粉底 BB” 和“气垫、粉底、BB” ,会展示所有包含“气垫” 或“粉底”或 “BB” 三个关键词的商品,而非同时包含这三个关键词的商品。

根据下图我们看到,小红书和网易考拉都做了这种识别。不论输入空格还是逗号,查询结果都是一致的。

2)分词

除了多查询串的识别,对长查询串的分词识别也是搜索最基础的要求之一。分词就是当用户提交了一个长字符串,可根据词义分割成若干字符串。例如:用户输入“遮瑕气垫粉底bb霜”,能拆分成“遮瑕” 、“气垫” 、“粉底”、 “bb霜”几个词串进行匹配,而不是只匹配与搜索词串完全相同的结果。

3)错别字识别

用户在搜索时输入错别字也是不可避免的情况。例如:用户搜索“永衣”,能给用户按“泳衣”关键词进行推荐。

4)同义词近义词

为了最大可能覆盖用户想要的结果,可建立一个同义词近义词的词库,当没有完全符合搜索词的结果时,可推荐近义词或同义词的搜索结果,例如:在考拉中,用户搜“花露水”,系统推荐了“驱蚊”关键词的结果,并推荐了另2个相关关键词。

5)重复内容识别

假设用户提交的查询有重复的内容,可将重复查询归并成一个处理。例如:“遮瑕气垫粉底bb粉底”,能去重分词为:“遮瑕、“气垫”、“粉底”、“bb”。

6)英文字母数字识别

查询串中包含英文字母或数字,将英文或数字作为一个整体保留,做模糊匹配。例如:“sulwhasoo面膜”被拆分为“sulwhasoo”“面膜”。

(2)关键词推荐

关键词推荐通常包含历史搜索和热门搜索的推荐。

1)历史搜索

历史搜索词就是推荐用户自己最近搜索过N个关键词,避免用户重复输入,支持用户手工清空。

2)热门搜索

热门搜索一般有两种做法:

    一是根据用户搜索的关键词热度进行排序,获取真实的热门关键词进行推荐;
    二是受商业价值驱动,推荐从商业角度,最希望用户搜索查询的内容。这会有一个供运营配置的后台,由运营人工配置。

当然也可以综合以上两种方式,兼而有之。

第2步:确定关键词

确定关键词为了帮助用户用最小的成本获取最准确的关键词,关键词联想也是搜索的基本功能。

联想关键词一般来自两个渠道:

    一是所有用户历史热搜的关键词;
    二是自建的常用关键词库。

当用户输入的关键词被包含匹配到以上两类关键词时,则被列入联想词列表。

 

第3步:搜索结果

(1)检索范围

搜索范围的规则制定也是搜索设计最基础的环节,是决定用户搜索关键词跟什么内容去做匹配的问题。同时,影响到搜索权重。

跟什么内容做匹配,也取决于用户搜索场景的分析。例如:用户想搜索的是商品,则应该跟商品属性做匹配,那具体是哪些属性,优先级如何,就是需要制定的规则。

商品而言,可以跟商品名称、商品关键词、商品详情等属性进行匹配,且商品名称的权重>商品关键词>商品详情。

有的平台可能没有商品关键词库,商品详情也用纯图片展示,那就只跟商品名称做匹配,所以具体匹配的属性需根据不同的实际情况而定。

(2)呈现方式

对搜索结果的呈现方式也是值得研究的点,同样需要从用户发起搜索的场景思考。

还是以小红书为例:用户的搜索需求有三种,搜索内容、商品、用户。如果用户从商城搜索,那搜索结果默认定位至商品列表是最符合场景的。同理,如果用户从社区进入搜索,那默认定位至社区内容TAB

但是有的产品首页是一个综合页,包含了所有内容模块,如果用户是从首页搜索,那在不清楚用户想搜索的到底是哪一部分内容的情况下,需定位至综合结果页。综合结果页会罗列出几部分中相关性最高的几个搜索结果供用户选择,综合结果的设计可以参考微信搜索结果页。

第4步:细化筛选

通常在搜索结果里,都会默认按照相关度排序。但是也允许用户按需从其它维度进行排序筛选,可筛选的条件跟搜索结果所属的特性强相关。例如:如果是商品列表,那可以考虑根据商品的价格、分类、销量、功能等排序。如果是一个平台电商,那还可以根据品牌等进行筛选。

除了考虑商品本身的属性进行筛选外,还要从商业利益的角度,把最想展示给用户的商品组合成一个分类,方便用户删选,例如:考拉的分类中,加入了“618”活动商品、考拉自营等分类。

Part 3:搜索数据的跟踪

数据驱动产品,是做任何产品都需要具备的意识。搜索也不例外。搜索上线后,我们需要监控哪些数据来帮助我们不断优化搜索功能呢?

1. 用户搜索路径及漏斗转化

主要监控用户是从哪里进入搜索的?搜索后有点击搜索结果吗?有完成最终转化吗?用户的路径能帮助我们检验搜索结果是不是用户想要的?

此外,如果用户在某个搜索入口高频搜索某个关键词,也可以帮我们反思搜索入口所在页面的设计,是不是没有满足用户某个痛点。

2. 关键词搜索数据监控

用户在产品下留下任何行为数据都是有意义的。搜索过的关键词更是如此。关键词代表了用户对产品最直接的诉求,不论关键词最终的搜索结果如何,都值得被记录。并定期拉出来,进行分析。

分析的结果不仅能帮助搜索的优化,还能反推运营、业务进行改进。例如:如果一个电商平台,5月份开始用户搜索“花露水”及类似驱蚊类商品的搜索增加,而平台在驱蚊产品上没有充足的备货,那就可以推动对驱蚊类商品的采购。

3. 搜索结果为空的数据监控

搜索结果为空的关键词,最能反映用户对产品的期待,但是却未达成所愿的那部分产品缺憾。所以,专项存储记录搜索为空的关键词,及关键词的搜索热度也是非常必要的,可以帮助我们不断弥补产品的不足。

综上,是对产品内部搜索功能设计思路的简单总结。希望能大家带来一定帮助。

来源:本文由 @菜花 原创发布于人人都是产品经理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今日arXiv最热大模型论文:北京大学最新综述:视觉大模型中的漏洞与攻防对抗

近年来,视觉语言大模型(LVLM)在文本转图像、视觉问答等任务中大放异彩,背后离不开海量数据、强大算力和复杂参数的支撑。 但是!大模型看似庞大的身躯背后却有一颗脆弱的“心脏”,极易受到攻击。攻击者可以…

史上最全,网工必考证书大盘点,竟然有20多个?

最近很多朋友来咨询,作为网工能考什么证书?证书那么多要怎么选择?哪个性价比高、哪个回报大等等等等的问题。 不难看出,大家最近这个想要学习和提升的势头很猛,毕竟现在这个环境下,属实是不好过了&#xff…

FPGA开发——数码管的使用(二)

一、概述 在上一篇文章中我们针对单个数码管的静态显示和动态显示进行了一个设计和实现,这篇文章中我们针对多个数码管同时显示进行一个设计。这里和上一篇文章唯一不同的是就是数码管位选进行了一个改变,原来是单个数码管的显示,所以位选就直…

Android Studio运行报错:module java.base dose not “opens java.io“ to unnamed module

今天第一次使用Android Studio运行一个安卓工程,报如图错误,应该是环境问题。 解决: 右上角的设置图标->settings->Buid,Execution,Deployment->Build Tools->Gradle->Gradle JDK->选择本地环境的java_home jdk(怎么安装…

docker镜像不可用

现在阿里、163等docker镜像基本不能使用,不能pull镜像了。 1.腾讯云内部 腾讯云服务器内部可用镜像(当然,需要先有一个腾讯云服务器):https://mirror.ccs.tencentyun.com 配置方法,vi /etc/docker/daemon…

C++—— IO流

一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()和printf()。 scanf():从标准输入设备(键盘)中读取数据,并将值存放在变量中。 printf():将指定的文字/字符串输出到标准输出设备(…

Python 聊天机器人项目-8-学习使用 NLTK 和 Keras 构建您的第一个聊天机器人

一、前言 该文章仅作为个人学习使用 二、正文 项目源代码:Python 聊天机器人项目 - 学习使用 NLTK 和 Keras 构建您的第一个聊天机器人 - DataFlair (data-flair.training) 数据集:https://data-flair.training/blogs/download-python-chatbot-data-…

Web3时代:科技与物联网的完美结合

随着信息技术的不断进步和物联网应用的普及,Web3技术作为下一代互联网的重要组成部分,正逐渐与物联网技术深度融合,共同开创了新的科技时代。本文将深入探讨Web3技术与物联网的结合,探索它们如何共同推动未来科技发展的新趋势和应…

【32单片机篇】项目:智能排队控制系统

一、项目需求 1. 红外传感器检测有人通过并计数; 2. 计数值显示在LCD1602; 3. 允许通过时,LED1闪烁,蜂鸣器不响,继电器不闭合; 4. 不允许通过时,LED2闪烁,蜂鸣器响,继电…

工信部:2024上半年我国信息安全领域收入909亿元

2024年上半年软件业经济运行情况 上半年,我国软件和信息技术服务业(以下简称“软件业”)运行态势良好,软件业务收入和利润均保持两位数增长,软件业务出口收入增速由负转正,主要大省持续向好发展。 一、总…

光纤基础科普

这部分主要介绍光纤的常见接口(四种)、光纤传输的种类、光模块的封装类型。 文章目录 一、光纤的常见接口二、光模块封装三、光纤传输种类 一、光纤的常见接口 光纤接口种类繁多,这里给出常用的四种 (1)SC 型光纤接…

C++静态成员变量和静态成员函数

演示代码如下&#xff1a; #include<iostream> using namespace std;class Person { public://静态成员函数 所有对象共享一个函数&#xff0c;且只能调用静态成员变量 ******static void func(){m_A 300;cout << "静态成员函数调用" << endl;}/…

Charles抓包工具系列文章(七)-- Rewrite工具的应用示例

一、背景 客户端通过域名访问后端服务,在api网关层,会判断path的前缀,默认/api开头的请求都转发至后端服务A。 当前缀是/assist/api开头,请求将转发至后端服务B(部署在192.168.80.226,便于测试对比) 在不改动kong网关配置的情况下,现需要把后者的请求转发至192.168.…

RxJava基础使用

Rx思想 事件从起点流向终点。 过程中可以对事件进行拦截&#xff0c;拦截时可以对事件进行处理&#xff0c;处理后将处理后的事件继续流向终点。 终点接收上一次处理后的事件。 获取网络图片并显示 基础实现 使用Observable.just(path) 创建图片路径的Observable。 使用m…

reshape函数及MATLAB应用

reshape 函数在 MATLAB 中是一个非常有用的函数&#xff0c;通过重新排列现有元素来重构数组。它允许你重新调整数组&#xff08;或矩阵&#xff09;的尺寸&#xff0c;而不改变其数据。这个函数特别适用于当你需要将一个矩阵或数组从一种结构转换为另一种结构时&#xff0c;只…

黑神话悟空是什么游戏 黑神话悟空配置要求 黑神话悟空好玩吗值得买吗 黑神话悟空苹果电脑可以玩吗

《黑神话&#xff1a;悟空》的类型定义是一款单机动作角色扮演游戏&#xff0c;但实际体验后会发现&#xff0c;游戏在很多设计上采用了「魂like」作品的常见元素。根据个人上手试玩&#xff0c;《黑神话&#xff1a;悟空》的推进节奏比较接近魂类游戏&#xff0c;Boss战也更像…

数据结构--双链表,循环链表,静态链表代码(王道书上代码手敲!!!)c++

目录 1.带头结点的双链表的初始化&#xff0c;判断链表是否为空&#xff0c;前插&#xff0c;后插&#xff0c;按位序插&#xff0c;删除后继节点&#xff0c;按位查找&#xff0c;按之查找&#xff0c;清空链表&#xff0c;销毁链表&#xff0c;遍历打印列表操作 2. 循环单链…

linux目录结构和重要文件

1. 目录介绍 操作Linux命令行&#xff0c;最基本的对象就是目录和文件&#xff0c;因为Linux中一切事物都是基于文件的&#xff0c;而目录就是文件的文件夹&#xff0c;所以接下来对一些基础且核心的文件目录管理命令进行说明。 1.1 目录结构 Linux系统目录结构是一个有层次…

达梦数据库的系统视图v$dict_cache

达梦数据库的系统视图v$dict_cache 达梦数据库系统视图V$DICT_CACHE主要用于监控和管理字典缓存的状态。字典缓存是数据库系统中用于存储元数据信息&#xff08;如表结构、索引信息等&#xff09;的缓存区域&#xff0c;它对于提高数据库查询性能至关重要。通过查询V$DICT_CAC…

Python 报错 SyntaxError: EOL while scanning string literal

Python 报错 SyntaxError: EOL while scanning string literal 在编程领域&#xff0c;尤其是使用Python这类解释型语言时&#xff0c;SyntaxError: EOL while scanning string literal 是一种常见的错误。这种错误通常发生在Python解释器尝试解析代码时&#xff0c;遇到了意外…