分词器|当你按下搜索键时,发生了什么?(上)( 二 )


分词器|当你按下搜索键时,发生了什么?(上)
文章插图
我们从APP、网站、小程序等不同载体中看到的搜索框,实际只是搜索引擎系统提供给用户的检索界面,当我们输入关键词,点击查询后,搜索引擎对我们输入文本进行复杂的分析,并从庞大的数据库中获取所有相关的信息,根据一定的排序策略将检索结果呈现至用户界面。
不同搜索引擎有各自的搜索策略,其索引的获取、query的分析、排序的算法不尽相同,因此在不同产品的搜索引擎搜索相同的query会获得不同的结果;当前搜索引擎收集用户行为数据,着力个性化推荐,同一产品不同时期检索某一关键词,也可能会获得不同的结果页。
具体流程如下:
分词器|当你按下搜索键时,发生了什么?(上)
文章插图
提及搜索,我们脑海中马上浮现的大概有百度、谷歌、淘宝等电商平台搜索框、微博等社交平台搜索框等。这些我们常用的搜索引擎,主要是全文搜索类型以及垂直搜索类型,除此之外,搜索引擎的类型还包括目录搜索、元搜索检索、集合式检索、门户搜索引擎等等。

  1. 全文搜索:全文搜索从互联网上提取网站信息,对海量的数据进行有效的管理和快速检索,最常用的全文搜索引擎有百度、谷歌等;
  2. 垂直搜索:垂直搜索引擎是针对某一行业的专业搜索引擎,是搜索引擎的分支和延伸。相较于通用搜索引擎,提供深度、准确性更高的搜索服务。垂直搜索引擎的应用方向很多,比如企业库搜索、供求信息搜索、购物搜索、房产搜索、人才搜索、mp3搜索、图片搜索、工作搜索、交友搜索等,几乎各行各业、各类信息都可以进一步细化成各类垂直搜索引擎。
2.1 分词分词是我们在搜索功能中较常听到的词汇之一。
分词就是对一段文本,通过规则或者算法分出多个词,每个词作为搜索的最细粒度一个个单字或者单词。分词的目的主要是为了搜索,尤其在数据量大的情况下,分词的实现可以快速、高效的筛选出相关性高的文档内容。
搜索过程中,分词由搜索引擎内的分词器,执行完成。分词器作用于用户的输入内容、以及文档索引建立的这两部分。前台文本内容的输入,来源于不同用户的需求;索引数据的来源可通过业务需求决定,自定义设置。
如在垂类电商业务中,我们构建索引的原始数据,便可以是商品的标题、详情、类目信息、品牌信息等,或者是从后台建立新的字段,分词过滤后进入索引区,等待检索。
2.1.1 分词流程
用户在搜索引擎界面输入关键词,点击“搜索”按钮之后,搜索引擎程序开始对搜索词进行以下处理:分词处理,根据情况对整合搜索是否需要启动进行判断、找出错别字和拼写中出现的错误、把停止词去掉。
分词的实现主要依赖分词器。分词器为分析器三大构成部件之一,文档的分词还会涉及到分词前的预处理,以及分词后的过滤操作。分析器的三构件分别为:字符过滤器、分词器、过滤器,文本在三者间流转顺序依次为字符过滤器—分词器—过滤器。
原始文本在分词之前,会流转到字符过滤器,将原始的文本作为字符流接受,通过增、减、改的方式改变字符流。处理后的流进入分词器,按照特定规则、算法执行分词操作,最后通过不同的过滤器进行处理。一个分析器中可以有0个或多个字符过滤器和过滤器,仅有一个分词器。
分词器|当你按下搜索键时,发生了什么?(上)
文章插图
  1. 字符过滤器:字符过滤器用于字符流传递到分词器之前对它进行预处理,字符过滤器支持数字的转换;将所有指定的字符串替换成特定的字符串;将任意字符转换为置顶字符。