- Elasticsearch实战与原理解析
- 牛冬
- 814字
- 2020-08-27 17:43:10
2.2 搜索引擎工作原理
通用搜索引擎的工作原理如图2-1所示。
图2-1
搜索引擎的工作原理分为两个阶段,即网页数据爬取和索引阶段、搜索阶段。其中网页数据爬取和索引阶段包含网络爬虫、数据预处理、数据索引三个主要动作,搜索阶段包含搜索关键词、输入内容预处理、搜索关键词查询三个主要动作。
其中,网络爬虫用于爬取互联网上的网页,爬取到一个新网页后还要继续通过该页面中的链接来爬取其他网页。因此网络爬虫是一个不停歇的工作,一般需要自动化手段来实施。网络爬虫的主要工作就是尽可能快、尽可能全地发现和抓取互联网上的各种网页。
网页被网络爬虫爬取后,会被存入网页库,以备下一阶段进行数据的预处理。需要指出的是,网页库里存储的网页信息与我们在浏览器看到的页面内容相同。此外,由于互联网上的网页有一定的重复性,因此在把新网页真正插入网页库之前,需要进行查重检查。
网页数据预处理程序不断地从网页库中取出网页进行必要的预处理。常见的预处理动作有去除噪声内容、关键词处理(如中文分词、去除停止词)、网页间链接关系计算等。其中,去除噪声内容包括版权声明文字、导航条、广告等。网页经过预处理后,会被浓缩成以关键词为核心的内容。
此外,互联网上的内容除常规的页面外,还有各类文件文档(如PDF、Word、WPS、XLS、PPT、TXT等)、多媒体文件(如图片、视频)等,这些内容均需进行相应的数据预处理动作。
数据预处理后,要进行数据索引过程。索引过程先后经历正向索引和倒排索引阶段,最终建立索引库。随着新的网页等内容不断地被加入网页库,索引库的更新和维护往往也是增量进行的。
以上是网页数据爬取和索引阶段的核心工作,下面介绍搜索阶段的核心工作。
用户输入的关键词同样会经过预处理,如删除不必要的标点符号、停用词、空格、字符拼写错误识别等,随后进行相关的分词,分词后搜索引擎系统将向索引库发出搜索请求。索引库会将包含搜索关键词的相关网页从索引库中找出来,搜索引擎根据索引库返回的内容进行排序处理,最终返回给用户。