搜索引擎的工作原理大体上可以分成三个阶段

优采云 发布时间: 2021-04-29 04:02

  

搜索引擎的工作原理大体上可以分成三个阶段

  

  搜索引擎的工作原理可以大致分为三个阶段:

  1)搜寻引擎爬虫通过以下链接访问网页,并获取页面的HTML代码并将其存储在数据库中。

  2)预处理-索引程序对捕获的页面数据执行文本提取,中文分词,索引和其他处理,以准备要调用的排名程序。

  3)排名-用户输入关键词后,排名程序将调用索引库数据,计算相关性,然后以某种格式生成搜索结果页面。

  爬行和爬行

  爬行和爬行是搜索引擎工作的第一步,完成了数据采集的任务。

  蜘蛛

  搜索引擎用于爬网和访问页面的程序称为蜘蛛,也称为bot。当搜索引擎蜘蛛访问网站页面时,它类似于普通用户使用的浏览器。蜘蛛程序发送页面访问请求后,服务器返回HTML代码,并且蜘蛛程序将接收到的代码存储在原创页面数据库中。为了提高抓取和抓取速度,搜索引擎使用多个蜘蛛来同时分发抓取。蜘蛛访问任何网站时,它将首先访问网站根目录中的robots.txt文件。如果robots.txt文件禁止搜索引擎抓取某些文件或目录,则抓取工具将遵守协议,并且不会抓取禁止的URL。

  跟踪链接

  为了在网络上尽可能多地爬网,搜索引擎蜘蛛将跟随页面上的链接并从一个页面爬到下一页,就像在蜘蛛网上爬行的蜘蛛一样。这就是名称搜索引擎Spider的由来。整个Internet由网站和彼此链接的页面组成。从理论上讲,爬虫从任何页面开始,并通过链接爬网到Internet上的所有页面。当然,由于网站和页面链接的结构极其复杂,蜘蛛需要采取某些爬网策略来遍历Internet上的所有页面。

  最简单的爬网遍历策略分为两种,一种是深度优先,另一种是广度优先。

  所谓的深度优先是指蜘蛛沿着发现的链接向前爬行,直到其前面没有更多链接,然后返回到第一页,然后沿着另一个链接向前爬行。

  第一宽度意味着蜘蛛在页面上找到多个链接时,不会一直跟踪链接,而是会爬行页面上的所有第一级链接,然后跟随第二级页面。链接将爬网到第三级页面。从理论上讲,无论是深度优先还是广度优先,只要给蜘蛛足够的时间,它们就可以爬网整个Internet。在实际工作中,爬虫的带宽资源和时间不是无限的,并且不可能爬网所有页面。实际上,最大的搜索引擎只是爬网而已,只是互联网的一小部分。

  通常将深度优先和宽度优先混合在一起,以便可以照顾到尽可能多的网站(深度优先),也可以照顾到网站的部分内页(深度优先)的。

  预处理

  提取文字

  当前的搜索引擎仍基于文本内容。除了用户可以在浏览器上看到的可见文本之外,爬虫爬网的页面中的HTML代码还收录大量HTML格式标签,Javascript程序和其他无法用于排名的内容。搜索引擎预处理的第一件事是从HTML文件中删除标签和程序,并提取可用于排名处理的网页文本内容。除了可见文本之外,搜索引擎还将提取一些收录文本信息的特殊代码,例如Meta标签中的文本,图片的替代文本,Flash文件的替代文本以及链接锚文本。

  中文分词

  分词是中文搜索引擎迈出的独特一步。搜索引擎存储和处理页面,用户搜索基于单词。单词和英语等语言中的单词之间存在空格,搜索引擎索引程序可以将句子直接分为单词集合。但是,中文单词之间没有分隔符,句子中的所有字符和单词都连接在一起。搜索引擎必须首先区分哪些字符组成一个单词,哪些单词本身就是一个单词。例如,“减肥方法”将分为两个单词“减肥”和“方法”。

  中文分词方法基本上有两种,一种是基于字典匹配的,另一种是基于统计的。

  基于字典匹配的方法是将要分析的一个汉字与预建字典中的一个条目进行匹配。从要分析的中文字符串扫描字典中的现有条目将成功匹配。或切出一个字。根据扫描方向,基于字典的匹配方法可以分为正向匹配和反向匹配。根据匹配长度的优先级,可以分为最大匹配和最小匹配。首先混合扫描方向和长度,可以生成不同的方法,例如前向最大匹配和反向最大匹配。字典匹配方法易于计算,其准确性在很大程度上取决于字典的完整性和更新性。

  基于统计的分词方法是指分析大量的文本样本并计算彼此相邻出现的词的统计概率。单词彼此相邻出现的次数越多,形成单词的可能性就越大。统计方法的优点是它对新出现的单词反应更快,也有助于消除歧义。两种基于字典匹配和统计的分词方法各有优缺点。实际的分词系统结合了两种方法来实现快速高效,可以识别新词和新词,消除歧义。

  搜索引擎对页面进行的单词分割取决于单词分割算法的规模,准确性和质量,而不是页面本身,因此SEO人员只能进行很少的单词分割。唯一可以做的就是使用某种形式在页面上提示搜索引擎。某些单词应视为一个单词,尤其是在可能出现歧义的情况下,例如出现在页面标题,h1标签和黑体字关键词中。如果页面上有关“和服”的内容,则可以将两个单词“和服”特别加粗。如果该页面是关于“化妆品”,则可以将“ clothing”一词标记为粗体。这样,当搜索引擎分析页面时,它知道以粗体标出的单词应该是单词。

  去停词

  无论是英语还是中文,页面内容中都会出现一些频繁出现但对内容没有影响的词,例如“的”,“地”,“得”和其他辅助词“ ah” ,“ ha”,“ Ya”和其他感叹词,“ thebyby”,“ Yi”,“ Ke”等介词。这些词被称为停用词,因为它们对页面的主要含义没有影响。搜索引擎会在索引页面之前删除这些停用词,以使索引数据的主题更加突出并减少不必要的计算。

  消除噪音

  在大多数页面上,还有一部分内容对页面主题的贡献不大,例如版权声明文本,导航栏,广告等。以常见的博客导航为例。几乎每个博客页面都将具有导航内容,例如文章类别和历史档案,但是这些页面本身与单词“ category”和“ history”无关。当用户搜索“历史记录”和“类别” 关键词时,仅仅因为这些词出现在页面上就没有意义并且完全不相关。

  因此,这些块是噪音,只能在分散页面主题方面起作用。搜索引擎需要识别并消除这些噪音,并且在排名时不使用噪音内容。去噪的基本方法是根据HTML标签将页面划分为块,区分页眉,导航,正文,页脚,广告和其他区域。 网站上的大量重复块通常是噪声。对页面进行去噪后,剩下的就是页面的主要内容。

  删除重复

  搜索引擎还需要对页面进行重复数据删除。相同的文章文章通常在不同的网站和相同的网站的不同URL上反复出现。搜索引擎不喜欢这种重复性内容。用户搜索时,如果在前两页中看到来自不同网站的同一文章文章,则尽管它们都是与内容相关的,但用户体验仍然很差。搜索引擎希望只返回同一文章中的一篇文章,因此它需要在索引之前识别并删除重复的内容。此原理称为重复数据删除。重复数据删除的基本方法是计算页面特征关键词的指纹,即从页面的主要内容中选择最具代表性的部分关键词(通常是最频繁出现的关键词),然后计算这些特征关键词]数字指纹。

  此处关键词的选择是在分词,停止单词删除和降噪之后进行的。实验表明,通常选择10个特征关键词可以达到较高的计算精度,而选择更多的单词对提高重复数据删除精度的贡献不大。了解搜索引擎的重复数据删除算法后,SEO人员应该知道,简单地添加“ de,land,get”并更改段落顺序(即所谓的伪原创)无法逃脱搜索引擎的重复数据删除算法,由于此操作,无法更改文章 关键词的特性。此外,搜索引擎的重复数据删除算法可能会超出页面级别,但会超出段落级别。混合使用不同的文章并交叉切换段落的顺序不会使重印和窃成为原创。

  前向索引也可以简称为索引。

  在文本提取,分词,去噪和重复数据删除之后,搜索引擎将获得反映页面主要内容且基于单词的独特内容。接下来,搜索引擎索引程序可以提取关键词,根据被分词程序划分的单词将页面转换为一组关键词,并记录每个关键词。格式(例如出现在title标签,粗体字,H标签,锚文本等),位置(例如页面的第一段等)。这样,每个页面都可以记录为关键词组字符串,其中还记录了每个关键词的权重信息,例如单词频率,格式和位置。

  倒排索引

  前向索引不能直接用于排名。假设用户搜索关键词 2。如果只有前向索引,则排名程序需要扫描索引库中的所有文件,找到收录关键词 2的文件,然后执行相关计算。此计算量不能满足实时返回排名结果的要求。因此,搜索引擎会将前向索引数据库重建为反向索引,并将从文件到关键词的映射转换为从关键词到文件的映射。在反向索引中,关键词是主键,每个关键词对应于一系列文件,并且此关键词出现在这些文件中。这样,当用户搜索某个关键词时,排序程序便将该关键词定位在倒排索引中,并可以立即找到收录该关键词的所有文件。

  链接关系的计算

  链接关系的计算也是预处理的重要部分。现在,所有主流搜索引擎排名因素都包括网页之间的链接流信息。搜索引擎抓取页面内容后,必须预先计算该页面上的哪些链接指向其他哪些页面?每个页面上导入的链接是什么?链接使用什么锚文本?这些复杂的链接指向关系形成网站和页面的链接权重。 Google PR值是这种链接关系的最重要体现之一。其他搜索引擎也执行类似的计算,尽管它们没有将其称为PR。

  特殊文件处理

  除了HTML文件之外,搜索引擎通常还可以抓取和索引各种基于文本的文件类型,例如PDF,Word,WPS,XLS,PPT,TXT文件等。我们经常在搜索中看到这些文件类型结果。但是,当前的搜索引擎无法处理图像,视频和Flash等非文本内容,也无法执行脚本和程序。尽管搜索引擎在识别图像和从Flash提取文本内容方面已经取得了一些进步,但它们仍然离通过读取图像,视频和Flash内容直接返回结果的目标相去甚远。图片和视频内容的排名通常基于与它们有关的文本内容。有关详细信息,请参阅下面的集成搜索部分。

  排名

  在搜索引擎蜘蛛抓取页面并且索引程序计算出反向索引之后,搜索引擎随时可以处理用户搜索。用户在搜索框中填写关键词后,排名程序将调用索引库数据,计算排名并将其显示给用户。排名原则是直接与用户互动。

  搜索字词处理

  搜索引擎收到用户输入的搜索词后,需要对搜索词进行一些处理才能输入排名原则。搜索字词的处理包括以下几个方面:

  中文分词

  与页面索引一样,搜索词也必须用中文进行分段,并且查询字符串必须转换为基于单词的关键词组合。分词的原理与页面分词的原理相同。

  去停词

  像建立索引一样,搜索引擎还需要从搜索词中删除停用词,以最大程度地提高排名的相关性和效率。

  命令处理

  对查询词进行细分之后,搜索引擎的默认处理方法是使用关键词之间的“与”逻辑。也就是说,当用户搜索“减肥方法”时,程序词的分割是“减肥”和“方法”。默认情况下,当搜索引擎进行排序时,用户正在寻找同时收录“减肥”和“方法”的页面。 。仅收录“减肥”但不收录“方法”的页面,或仅收录“方法”但不收录“脂肪减少”页面的页面被认为不符合搜索条件。当然,这只是一个非常简化的陈述来说明该原理。实际上,我们仍然会看到仅收录关键词一部分的搜索结果。此外,用户输入的查询词还可能收录一些高级搜索指令,例如加号,减号等。搜索引擎需要相应地对其进行识别和处理。

  文件匹配

  在处理了搜索词之后,搜索引擎将获得基于单词的关键词集合。文件匹配阶段是查找收录所有关键词的文件。索引部分中提到的反向索引使文件匹配得以快速完成。

  初始子集的选择

  找到收录所有关键词的匹配文件后,将无法执行相关计算,因为通常会找到数十万,数百万甚至数千万的文件。实时对这么多文件进行相关计算需要很长时间。实际上,用户并不需要知道所有匹配的数以亿计的页面,大多数用户只会查看前两个页面,即前20个结果。搜索引擎不需要计算这么多页面的相关性,而只需要计算页面中最重要的部分。使用搜索引擎的人会注意到,搜索结果页面通常最多只能显示一百个。当用户单击搜索结果页面底部的“下一页”链接时,他们最多只能看到一百个页面,即一千个搜索结果。百度通常会返回76页的结果。

  相关性计算

  选择初始子集后,计算该子集中页面的关键词相关性。计算相关性是排名原则中最重要的步骤。关联性计算是SEO搜索引擎算法中最有趣的部分。影响相关性的主要因素包括几个方面。

  关键词常用级别

  分词后的多个关键词对整个搜索字符串的含义有不同的贡献。较常用的词对搜索项含义的贡献较小,而较不常用的词对含义的贡献更大。例如,假设用户输入的搜索词是“ we Pluto”。 “我们”一词非常常用,它出现在许多页面上。它对搜索词“ us Pluto”的识别和意义几乎没有贡献。找出收录单词“ we”的页面对搜索排名的相关性影响很小,并且收录单词“ we”的页面太多。术语“冥王星”使用较少,它对搜索词“我们的冥王星”的含义贡献很大。那些收录单词“ Pluto”的页面将与搜索词“我们的Pluto”更加相关。最常见的词是停用词,对页面的含义没有影响。

  因此,搜索引擎不会对搜索词中的关键词进行同等对待,而是根据常用程度对其进行加权。不常见的单词具有较高的加权系数,而常用的单词具有较低的加权系数。排序算法更加注意不常用的单词。我们假定单词“我们”和“冥王星”都出现在页面A和B上。但是单词“我们”出现在页面A的普通文本中,单词“冥王星”出现在页面A的标题标签中。相反,在B页中,“ we”出现在标题标签中,而“ Pluto”出现在普通文本中。然后,对于搜索词“我们冥王星”,页面A会更相关。

  单词频率和密度

  通常认为,在没有关键词累积的情况下,搜索词在页面上的出现频率更高,并且密度更高,表明该页面与搜索词更相关。当然,这只是一般规则,实际情况可能并非如此,因此相关计算中还有其他因素。频率和密度只是这些因素的一部分,它们的重要性越来越低。 关键词位置和格式如索引部分所述,页面关键词的格式和位置记录在索引库中。 关键词出现在更重要的位置,例如标题标签,粗体,H1等,指示该页面与关键词更加相关。这部分是页面SEO即将解决的问题。

  关键词距离

  出现分段的关键词完全匹配项,表明它与搜索词最相关。例如,当搜索“减肥方法”时,在页面上连续且完全出现的四个单词“减肥方法”是最相关的。如果“减肥”和“方法”这两个词不连续匹配,则它们看起来更接近,搜索引擎也认为它们的相关性更高。

  链接分析和页面权重

  除了页面本身的因素*敏*感*词*的文本,等等。在对过滤器进行排名和调整之后,选择匹配文件的子集并计算相关性,从而确定了总体排名。之后,搜索引擎可能还会使用一些过滤算法来稍微调整排名,其中最重要的是施加惩罚。根据正常的权重和相关性计算,可以将一些怀疑作弊的页面排在第一位,但是搜索引擎的惩罚算法可能会将这些页面移到最后一步。典型的例子是百度的11位算法,谷歌的负6,负30和负950算法。

  排名显示

  确定所有排名后,排名程序将调用原创页面的标题标签,描述标签和快照日期,以将其显示在页面上。有时搜索引擎需要动态生成页面摘要,而不是调用页面本身的描述标签。

  搜索缓存

  重复了用户搜索的关键词的很大一部分。根据2/8法律,搜索词的20%占搜索总数的80%。根据长尾理论,最常见的搜索词所占比例不超过80%,但它们通常具有相对较大的头部,少数搜索词所占比例也很大。尤其是在发生热门新​​闻时,每天都有成千上万的人搜索完全相同的内容关键词。可以说,每次搜索都重新处理排名是很浪费的。

  搜索引擎会将最常用的搜索词存储在缓存中,并且用户在搜索时将直接从缓存中调用它们,而无需进行文件匹配和相关性计算,从而大大提高了排名效率并缩短了搜索响应时间。查询并单击日志以搜索用户的IP地址,搜索的关键词,搜索时间以及已单击的结果页,搜索引擎记录并形成日志。这些日志文件中的数据对于搜索引擎判断搜索结果的质量,调整搜索算法并预测搜索趋势具有重要意义。

  以上我们简要介绍了搜索引擎的工作原理。当然,搜索引擎的实际工作步骤和算法非常非常复杂。上面的描述非常简单,但是存在许多技术困难。搜索引擎继续优化算法和优化数据库格式。不同搜索引擎的工作步骤也将有所不同。但是基本上所有主流搜索引擎的基本工作原理都是相同的,并且在过去的几年和未来的几年中不会有实质性的变化。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线