美文网首页
如何完成一个搜索流程?

如何完成一个搜索流程?

作者: 爱因斯坦酱 | 来源:发表于2020-07-23 21:32 被阅读0次

在互联网信息爆炸的当下,主流的信息分发方式早已由算法替代,变成了被动获取;但被动的信息投放无法在每时每刻都满足人们获取信息的需求,所以依旧保持了主动获取信息的渠道——搜索。今天主要是简单的讲述下 “ 如何完成一个搜索流程?

注:这里仅指搜索这个动作,而不是广义的搜索引擎(类似百度、geogle这种)。


搜索是用户主动发起的信息获取行为,所以有几个明显的特征:

①主动获取

②有大致的信息目标

③内容需求强烈

基于以上三个特点,我们可以看出搜索的过程是用户主动发起某个关键词的信息检索,并期望获得明确的搜索结果。根据这个过程梳理一下用户大致的流程预期:

点击/输入关键字➡点击搜索按钮➡获得期望结果

而在于系统层面,大致的搜索流程是,稍后会按照一下的流程对每个环节进行详细说明:

点击/输入关键字➡对搜索内容进行分词➡ES搜索➡根据打分权重输出排序列表➡搜索结果优化

①输入搜索内容

输入内容是客户端的流程,由用户来主导操作,所以需要注重交互设计。为了便于使用,通常会提供以下三种方式:

搜索历史:用户曾经搜索过的内容,进行二次搜索时不用重新输入,直接点击搜索历史即可

搜索联想词:用户输入部分内容后,快速给出一个用户可能想要搜索的内容列表,便于用户快速操作;内容来源一般是包含已输入字符的高频搜索列表。(这个搜索列表不仅来源于当前用户,而是系统用户,甚至通过其他三方搜索引擎接入对方系统用户的高频查询内容)

快速搜索列表:一般有热门搜索列表或运营手动维护的搜索关键词之类;热门搜索列表为当前时间全网用户搜索的热门内容topN;运营维护的内容就是各平台按各自业务需求进行配置;一般以按钮/文字链的形式展示在搜索页面。

以上三种方式分为两类:一类是快捷搜索(联想词&快速搜索),这种通常是点击关键词后直接执行搜索操作如果是用户在输入框输入的内容;另一类是手动输入搜索,这种是用户在输入框先输入搜索内容,输入完成后需手动发起搜索,通常会提供搜索按钮,有的产品也会在调起键盘时将输入键盘中的回车键替换为搜索按钮。

②分词

分词是指将用户输入的搜索内容,按照最小单元进行拆分,尽可能精确匹配到搜索结果。分词时会先通过词典查询用户输入内容的所有子集,将可以串联成完整内容项的子集进行保留,从子集链路中选择初最合适的方式

比如,“徐朝阳道歉”,可拆分子集如下:

【徐、朝、阳、道、歉】【徐、朝、阳、道歉】【徐、朝、阳道歉】【徐、朝阳道歉】

【徐朝、阳、道、歉】【徐朝、阳、道歉】【徐朝、阳道歉】

【徐朝阳、道、歉】【徐朝阳、道歉】【徐朝阳道、歉】【徐朝阳道歉】

当然这种从子集中选的方式效率比较低,词典树会更好一些。如果想要对分词的结果进行优化,可以对挑选子集链路的规则进行优化。

③ES搜索引擎

搜索的背后主要的匹配是通过ES搜索引擎来完成的,大概讲一下原理:将被搜索的内容进行拆分建立索引,存放进文档中,根据分词内容读取索引,找到对应的内容集

④列表输出

在获得内容集后,根据打分规则进行打分,排序,最后会输出有序列表。打分规则可能会内容匹配度、内容本身属性、甚至用户喜好等;如果业务需要在搜索页面,根据用户做不同展示,可以使用用户喜好,反之也可不用。

想要对内容有序列表进行优化,可以在测试或上线后不断对打分规则进行优化,甚至是不断挖掘用户关注点参与打分规则;根据线上CTR数据,做一定的效果参考。


本篇文章意在简单介绍一个大致流程,如有表述不当之处欢迎指正。

另,对于分词和ES搜索引擎两块比较技术性的内容,只是简单概述,想深入了解的朋友可参考一下两篇内容,我个人也是在不断学习这块,欢迎一起交流~

中文分词器的基本原理和简单实现:https://blog.csdn.net/wbsrainbow/article/details/88795312

ES搜索引擎-简单入门:https://blog.csdn.net/baishimingbaishiming/article/details/81839626

相关文章

  • 如何完成一个搜索流程?

    在互联网信息爆炸的当下,主流的信息分发方式早已由算法替代,变成了被动获取;但被动的信息投放无法在每时每刻都满足人们...

  • 【PM】移动设计模式—搜索篇

    今天继续探讨如何帮助用户找到内容——「搜索」过程产品设计。 我们先看一个完整的搜索用户体验流程:有一个用户小明,进...

  • 004 View Controller

    上一节我们完成了如何添加一个按钮的流程,众多的用户界面控件也都是通过上一节的流程完成的。完成了这一步,我们就完成了...

  • Day1-小森

    如何学习 电脑 讨论 笔记 作业 解决问题 搜索 搜索引擎 讨论 提问 搭建高效学习平台 效率软件 学习流程 ma...

  • 功能原型还原—「小猿搜题」

    体验“点击拍照搜题——>拍照——>裁剪——>上传题目——>反馈搜索结果——加入错题——查看我的错题本”的流程,完成...

  • es读优化

    es搜索数据 es搜索数据流程 es读写流程示意图 分布式搜索示意图image.png es的几种搜索类型 QUE...

  • Servlet

    容器完成请求的流程 启动web容器 容器读取web.xml,读取init-Param,并搜索目录下的servlet...

  • Tomcat请求处理流程

    上一篇说到了Tomcat的启动流程,那么请求处理的流程是如何完成的呢? Connector接收请求 Connect...

  • 搜索

    一、全网搜索引擎架构与流程 全网搜索的宏观架构长啥样? 全网搜索的宏观流程是怎么样的? 全网搜索引擎的宏观架构如上...

  • activiti源码剖析之使用图片生成器设置流程图高亮显示

    在一个流程流转的过程中,可能已经经过多个节点,或者正在停留在某个任务节点。那么我们如何直观的显示当前流程已经完成了...

网友评论

      本文标题:如何完成一个搜索流程?

      本文链接:https://www.haomeiwen.com/subject/zrtklktx.html