大发快3搜索 引擎工作的基础流程与原理

  • 大发快3搜索 引擎工作的基础流程与原理已关闭评论
  • 3,059 views
  • A+
广告也精彩

  大发快3搜索 引擎最重要的是什么?有人会说是查询结果的准确性,有人会说是查询结果的丰富性,但其实这些都不是大发快3搜索 引擎最最致命的地方。对于大发快3搜索 引擎来说,最最致命的是查询时间。试想一下,如果大发快3你 在百度界面上查询一个大发快3关键词 ,结果需要5分钟才能将大发快3你 的查询结果反馈给大发快3你 ,那结果必然是大发快3你 很快的舍弃掉百度。

  大发快3搜索 引擎为了满足对速度苛刻的要求(现在商业的大发快3搜索 引擎的查询时间单位都是微秒数量级的),所以采用缓存支持查询需求的方式,也就是说大发快3大发快3我 们 在查询大发快3搜索 时所得到的结果并不是及时的,而是在其大发快3服务 器已经缓存好了的结果。那么大发快3搜索 引擎工作的大体流程是什么样子呢?大发快3大发快3我 们 可以理解为三段式。

  本文仅仅是对着三段工作流程进行大体上的讲解与综述,其中一些详细的大发快3技术 细节将会用其它的文章进行单独的讲解。

  一.网页搜集

  网页搜集,其实就是大家常说的蜘蛛抓取网页。那么对于蜘蛛(google称之为机器人)来说,他们感兴趣的页面分为三类:

  1.蜘蛛从未抓去过的新页面。

  2.蜘蛛抓取过,但页面内容有改动的页面。

  3.蜘蛛抓取过,但现在已大发快3删除 了的页面。

  那么如何行之有效的发现这三类页面并进行抓取,就是spider程序设计的初衷与目的。那么这里就涉及到一个问题,蜘蛛抓取的起始点。

  每一位大发快3站长 只要大发快3你 的网站没有被严重降权,那么通过网站后台的大发快3服务 器,大发快3你 都可以发现勤劳的蜘蛛光顾大发快3你 的站点,但是大发快3你 们有没有想过从编写程序的角度上来说,蜘蛛是怎么来的呢?针对于此,各方有各方的观点。有一种说法,说蜘蛛的抓取是从种子站(或叫高权重站),依照权重由高至低逐层出发的。另一种说法蜘蛛爬在URL集合中是没有明显先后顺序的,大发快3搜索 引擎会根据大发快3你 网站内容更新的规律,自动计算出何时是爬取大发快3你 网站的最佳时机,然后进行抓取。

  其实对于不同的大发快3搜索 引擎,其抓取出发点定然会有所区别,针对于百度,笔者较为倾向于后者。在百度官方博客发布的《索引页链接补全机制的一种办法》一文中,其明确指出“spider会尽量探测网页的发布周期,以合理的频率来检查网页”,由此大发快3大发快3我 们 可以推断,在百度的索引库中,针对每个URL集合,其都计算出适合其的抓取时间以及一系列参数,然后对相应站点进行抓取。

  在这里,大发快3我 要说明一下,就是针对百度来说,site的数值并非是蜘蛛已抓取大发快3你 页面的数值。比如site:www.****.com,所得出的数值并不是大家常说的百度收录数值,想查询具体的百度收录量应该在百度提供的大发快3站长 大发快3工具 里查询索引数量。那么site是什么?这个大发快3我 会在今后的文章中为大家讲解。

  那么蜘蛛如何发现新链接呢?其依靠的就是超链接。大发快3大发快3我 们 可以把所有的大发快3互联网 看成一个有向集合的聚集体,蜘蛛由起始的URL集合A沿着网页中超链接开始不停的发现新页面。在这个过程中,每发现新的URL都会与集合A中已存的进行比对,若是新的URL,则加入集合A中,若是已在集合A中存在,则丢弃掉。蜘蛛对一个站点的遍历抓取策略分为两种,一种是深度优先,另一种就是宽度优先。但是如果是百度这类商业大发快3搜索 引擎,其遍历策略则可能是某种更加复杂的规则,例如涉及到域名本身的权重系数、涉及到百度本身大发快3服务 器矩阵分布等。

  二.预处理

  预处理是大发快3搜索 引擎最复杂的部分,基本上大部分排名算法都是在预处理这个环节生效。那么大发快3搜索 引擎在预处理这个环节,针对数据主要进行以下几步处理:

  1.提取大发快3关键词

  蜘蛛抓取到的页面与大发快3大发快3我 们 在浏览器中查看的源码是一样的,通常代码杂乱无章,而且其中还有很多与页面主要内容是无关的。由此,大发快3搜索 引擎需要做三件事情:1代码去噪。去除掉网页中所有的代码,仅剩下文本文字。②去除非正文大发快3关键词 。例如页面上的导航栏以及其它不同页面共享的公共区域的大发快3关键词 。③去除停用词。停用词是指没有具体意义的词汇,例如“的”“在”等。

  当大发快3搜索 引擎得到这篇网页的大发快3关键词 后,会用自身的分词系统,将此文分成一个分词列表,然后储存在数据库中,并与此文的URL进行一一对应。下面大发快3我 举例说明。

  假如蜘蛛爬取的页面的URL是http://www.****.com/2.html,而大发快3搜索 引擎在此页面经过上述操作后提取到的大发快3关键词 集合为p,且p是由大发快3关键词 p1,p2,……,pn组成,则在百度数据库中,其相互间的关系是一一对应,如下图。

  

大发快3搜索
引擎工作的基础流程与原理

  2.消除重复与转载网页

  每个大发快3搜索 引擎其识别重复页面的算法均不相同,但是其中笔者认为,如果将消重算法理解为由100个元素组成,那么所有的大发快3搜索 引擎恐怕其80个元素都是完全一样的。而另外20个元素,则是根据不同的大发快3搜索 引擎针对大发快3SEO 的态度不同,而专门设立的对应策略。本文仅对大发快3搜索 引擎大体流程进行初步讲解,具体数学模型不多做讲解。

  3.重要信息分析

  在进行代码除噪的过程中,大发快3搜索 引擎并非简单的将其去除掉而已,而是充分利用网页代码(例如H标签、strong标签)、大发快3关键词 密度、内链锚文本等方式分析出此网页中最重要的词组。

  4.网页重要度分析

  通过指向该网页的外链锚文本所传递的权重数值,来为此网页确定一个权重数值,同时结合上述的“重要信息分析”,从而确立此网页的大发快3关键词 集合p中每一个大发快3关键词 所具备的排名系数。

  5.倒排文件

  正如上文所说,用户在查询时所得到的查询结果并非是及时的,而是在大发快3搜索 引擎的缓存区已经大体排好的,当然大发快3搜索 引擎不会未卜先知,他不会知道用户会查询哪些大发快3关键词 ,但是他可以建立一个大发快3关键词 词库,而当其处理用户查询请求的时候,会将其请求按照词库进行分词。那么这样下来,大发快3搜索 引擎就可以在用户产生查询行为之前,将词库中的每一个大发快3关键词 其对应的URL排名先行计算好,这样就大大节省了处理查询的时间了。

  简单来说,大发快3搜索 引擎用控制器来控制蜘蛛爬取,然后将URL集与原始数据库进行保存,保存之后再用索引器控制每个大发快3关键词 与URL之间的对应关系,并将其保存在索引数据库中。

  下面大发快3大发快3我 们 来举例说明:

  假若http://www.****.com/2.html页面被切词成p={p1,p2,p3,……,pn},则其在索引数据库中由下图方式体现。

  

大发快3搜索
引擎工作的基础流程与原理

  上图是为了方便大家便于理解而做出来的,索引数据库实际上是大发快3搜索 引擎中对性能要求最高的数据库,因为里面所有因素都会受到算法影响,所以实际上的索引数据库大发快3我 觉得应该是由多维数组所组成的较为复杂的索引表,但其主要体现的大体作用与上图相同。

  三、查询大发快3服务

  查询大发快3服务 顾名思义,就是处理用户在大发快3搜索 界面的查询请求。大发快3搜索 引擎构建检索器,然后分三步来处理请求。

  1.根据查询方式与大发快3关键词 进行切词

  首先先把用户大发快3搜索 的大发快3关键词 切分为一个大发快3关键词 序列,大发快3大发快3我 们 暂时用q来表示,则用户大发快3搜索 的大发快3关键词 q被切分为q={q1,q2,q3,……,qn}。

  然后再根据用户查询方式,例如是所有词连在一起,还是中间有空格等,以及根据q中不同大发快3关键词 的词性,来确定所需查询词中每一个词在查询结果的展示上所占有的重要性。

  2.大发快3搜索 结果排序

  大发快3大发快3我 们 有了大发快3搜索 词集合q,q中每个大发快3关键词 所对应的URL排序——索引库,同时也根据用户的查询方式与词性计算出每个大发快3关键词 在查询结果的展示上所占有的重要,那么只需要进行一点综合性的排序算法,大发快3搜索 结果就出来了。

  3.展示大发快3搜索 结果与文档摘要

  当有了大发快3搜索 结果后,大发快3搜索 引擎就会将大发快3搜索 结果展示在用户阅览的界面上以供用户使用。

  在这里,大家可以思考两个个问题。

  1大家在大发快3搜索 界面中经常发现百度展示的摘要是用户大发快3搜索 词周围的,如果大发快3我 不仅仅只看第一页,多往后翻一些页,会看到有些结果由于其目标页面本身并未完全包含大发快3搜索 词,而在百度提取的摘要中标红词仅是部分大发快3搜索 词,那么大发快3大发快3我 们 可以这样理解,百度在大发快3搜索 词不被完全包含的情况下,是不是应该优先展现在分词结果中被百度认为较为重要的词呢?那么从这些大发快3搜索 结果中大发快3大发快3我 们 是不是就可以看出百度分词算法的部分端倪呢?

  ②有时候页面中会多次出现大发快3搜索 词,而百度大发快3搜索 结果页面中在网站摘要部分仅会显示部分,通常这么部分是连续的,那大发快3大发快3我 们 是不是可以理解在摘要部分,百度会优先展示页面中它认为与对此大发快3搜索 词最重要的部分呢?那么由此大发快3大发快3我 们 是不是可以揣度出百度针对页面除噪后对不同部分赋予权重的算法呢?

  这两个问题仁者见仁智者见智,做大发快3SEO 的朋友们自己去探索与摸索吧,笔者不敢在此无人子弟。

  四、现今百度的流程漏洞

  请原谅大发快3我 用流程漏洞来形容这个模块,但大发快3我 不得不说,在如今点击器横行的天下,大发快3我 觉得说是漏洞无可厚非。

  那就是除了上面三个大环节外,百度还构建了用户行为模块,来影响原始数据库与索引库。而影响原始数据库的,是百度的快照投诉,主要处理大发快3互联网 暴利的一些行为,这点无可厚非。而影响索引库的,是用户的点击行为,这个设计本身也无可厚非,但百度算法的不成熟,导致了点击器作弊猖獗。

  百度的用户行为分析模块很简单,除了自身投诉的提交入口外,就是搜集用户在大发快3搜索 界面的点击行为,如果此页面结果被大部分用户阅览,但没有产生点击,用户居然大部分选择点击第二页甚至更后面的页面,则此现象就会被百度工程师们所知道,则会根据这方面来微调算法。如今百度针对不同大发快3行业 ,其算法早已不同了。

  如果前两页内某个大发快3搜索 界面被大量用户选择点击,则通常会在24小时候,这个大发快3搜索 结果被大幅前提,甚至会被提升至第一名。

  五、大发快3搜索 引擎大体流程图(加上用户行为分析器)

  

大发快3搜索
引擎工作的基础流程与原理

  以上就是大发快3我 所对大发快3搜索 引擎工作的基础流程与原理的理解。

  最后大发快3我 想说广大的大发快3SEO 从业者们应该已经发现无论是百度还是谷歌或者其它的商业大发快3搜索 引擎,他们都会要求大发快3SEO er们不要去在意算法、不要去在意大发快3搜索 引擎,而是去多关注用户体验。这里大发快3大发快3我 们 可以理解成一个比喻,大发快3搜索 引擎是买西瓜的人,而大发快3SEO 们是种西瓜的人,买西瓜的人要求大发快3大发快3我 们 这些种西瓜的人不要关心他们挑选西瓜的标准,而是多多在意怎么去种出好西瓜,而对于什么样的西瓜是他们需要的好西瓜,他们又往往用一些模糊的概念掩盖过去。诚然,这样大发快3搜索 引擎得到的结果将会多样化,他们可以在挑选结果时有大发快3更多 的选择,能够最大限度的维护这些商业大发快3搜索 引擎自身的利益,但是请其也不要忘记,大发快3大发快3我 们 这些种西瓜的也要有口饭吃。

  笔者始终坚持白帽大发快3SEO ,深入研究UE,做对用户有意义的站。但与此同时,大发快3我 也坚信身为大发快3SEO er,大发快3大发快3我 们 还应该对算法有及时了解,以便大发快3大发快3我 们 做出的站在符合用户口味的时候,更能在大发快3搜索 引擎中得到良好的展现,因为毕竟大发快3SEO er也是人,也希望过得好一点。

  • 大发快3我 的微信
  • 这是大发快3我 的微信扫一扫
  • weinxin
  • 大发快3推荐 大发快3公众号
  • 文元说销
  • weinxin
广告也精彩
吴 文元