二、搜索引擎工作原理
搜索引擎工作原理非常复杂,大致可以分为3个阶段:爬行与抓取、预处理、排名。
1、爬行与抓取
爬行与抓取是搜索引擎第一步工作,也就是在互联网上发现、搜集网页信息,同时对信息进行提取和建立索引库。
(1)蜘蛛指一种自动爬行访问和抓取网页信息的程序或脚本,其主要作用浏览信息,然后把这些信息都抓到搜索引擎服务器上,建立索引库。常见的有百度蜘蛛,Google蜘蛛,搜狗蜘蛛。
(2)跟踪链接:为了抓取更多的链接蜘蛛会跟踪页面上的链接,从一个页面到另一个页面,就像蜘蛛在网上爬行一样。蜘蛛爬行的策略分两种,即深度优先搜索和广度优先搜索。
深度优先搜索:即蜘蛛沿着发现的链接一直向前爬行, 直到再也没有其他链接。然后返回到第一个页面, 再沿着另一个链接一直向前爬行。
深度优先搜索
广度优先搜索:蜘蛛在一个页面一上发现多个链时,不是顺着一个链接一直向前,而是把页面上所有的第一层链接爬行完后再沿着第二层页面上发现的链接爬向第三层链接。
广度优先搜索
(3)吸引蜘蛛:理论上蜘蛛会自动抓取所有的网页,但实际上回因为其他因素影响而不能抓取完网页。所以想要网站有更多的收录,就要想办法吸引蜘蛛。
(4)地址库:为了避免蜘蛛重复爬行和抓取网址,搜索引擎会建立一个地址库,记录下没有被抓取的页面,以及被抓取的页面。地址库链接的主要来源有以下4方面。
(5)文件存储:文件储存是搜索引擎蜘蛛抓取的数据被存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全相同的。每个URL都有一个独特的文件编号。
(6)爬行时检测内容:当蜘蛛爬行和抓取文件时会进行一定程度的复制内容检测,遇到权重低的网站上大量转载或抄袭内容时,便不再继续爬行。
2、预处理:因为搜索引擎数据库网页较多,用户搜索后,索引计算量太大,很难在短时间内返回搜索结果,因此必须对页面进行预处理。
(1)提取文字:搜索引擎预处理首先要做的就是从HTML文件中去除标签和程序,提取出用于排名处理的网页文字内容。
(2)中文分词:中文的词与词之间没有任何分隔符,一个句子里面所有字和词都连在一起。因此,搜索引擎首先要分辨那几个字是组成一个词的,哪些字本身就是一个词。中文分词有两种方法,即基于词典匹配分词法和基于统计分词法。
A、将待分析内容与词典中的词进行匹配,待分析汉字扫描到词典中已有的词条,则说明匹配成功,或者可以说切分出一个单词。
B、对大量的文字样本进行分析,计算出字与字相邻出现的概率,字与字之间相邻出现的次数越多,越可能形成一个单词。这种方法的优势是对新出现的词反应更快速,也有利于消除歧义。
(3)去停止词:停止词指网页内容中出现频率很高,但是对内容没有任何影响的词,因为它们对页面内容并无没实质影响。搜索引擎在索引页面之前会去掉这些停止词。
(4)消除噪声:噪声指对页面主题没有贡献的内容,比如版权声明、导航条、广告等,这些内容对页面主题只能起到分散作用。因此搜索引擎需要识别并消除这些噪声,排名时不使用噪声内容。
(5)去重:搜索引擎并不喜欢重复性的内容,所以在进行索引前对内容进行识别,删除重复的内容,这个过程可以成为“去重”。
(6)正向索引:经过文字提取、分词、消噪、去重之后,搜索引擎就可以提取关键词,按照分词程序划分关键词,将页面转换为由关键词组成的集合,其中每个关键词词频、格式、位置等权重信息都记录在案。
(7)倒排索引:如果搜索引擎只能正向索引,排名程序需要扫描所有索引库的文件,再进行排名计算,这样计算量无法满足实时返回排名结果的要求,因此需要搜索 引擎将正向索引数据库重新构造成导引索引,把文件对应到关键词的映射转换为关键词到文件的映射。
倒排索引
(8)链接关系计算:目前的搜索引擎中都包含着网页之间的流动信息。搜索引擎在抓取页面内容后,必须计算出页面上有哪些页面,使用了哪些链接。由于页面和链接数量较大,因此链接关系及权重计算耗费时间较长。
(9)特殊文件处理:除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如PDF、Word、WPS、XLS、PPT、TXT文件等。
3、排名:
(1)对提交的搜索请求进行分析:用户在搜索引擎上提交搜索请求后,搜索引擎便会对该请求进行详细分析。(中文分词、去停止词、指令处理、拼写矫正、整合搜索触发)
(2)文件匹配:搜索词经过处理后,搜索到的是以词为基础的关键词集合。文件匹配阶段就是找到含有所有搜索关键词的文件。通过倒排索引使得文件能够快速完成。
(3)初始子集筛选:为了快速满足用户的搜索需求,搜索引擎需要从所有的相关页面进行选择,只计算权重高的页面返回给用户,这个过程就是初始子集筛选。
(4)相关性计算:选出初始子集后,需要对子集页面中的关键词相关性进行计算。(关键词常用度、链接和使用页面权重、关键词出现的位置、关键词密度和字顿、关键词距离)
(5)排名过滤及调整:选出匹配文件子集、计算相关性后,网页的排名基本确定。之后搜索引擎还会进行一些算法处理,轻微调整排名,其中最主要的是实施惩罚。
(6)排名显示:所有排名确定后,排名程序会调用原始页面的标题标签、说明标签、快照日期等数据显示在页面上。
搜索引擎工作原理