搜索引擎原理简单分析带图
先上图来简单看下搜索引擎的“三板斧”:数据搜集—>预处理【索引】—>排名。
数据搜集
即数据的搜集阶段,将网页从浩如瀚海的互联网世界搜集到自己的数据库中进行存储。
1、抓取维护策略
面对大量需要处理的数据,很多问题需要事先考虑好。比如是“即时抓取”数据还是“事先抓取”?在对数据进行维护时是“定期抓取”(定期一次深度大抓取,替代原有的数据)还是“增量抓取”(以原有数据为根基,进行新旧交替)?
2、链接跟踪
我们都知道,蜘蛛是顺着链接爬行和抓取页面的。如何快速抓取到对用户来说相对重要的信息以及达到广阔的覆盖无疑是搜索引擎需要重点考虑的问题。
先来说第一个,怎么抓取到重要的信息。
想要知道这个,首页要明白人们是怎么样主观去判断一个页面是否重要的(自己先思考下)。其实无外乎以下几种情况:
网页有历史权重积累(域名等时间较长、质量高、资格老)、很多人会提到这个页面(外链指向)、很多人会引用这个页面(转载或者镜像)、这个页面便于用户快速浏览(层级较浅)、经常有新的内容出现(更新)等等。
而在链接跟踪阶段,其实能得到的信息只有“这个页面便于用户快速浏览(层级较浅)”,其它信息还未获取。
对于信息的覆盖,其实就是蜘蛛在跟踪链接时的两个策略:深度抓取与广度抓取。
用屁股想一下也知道,广度抓取有助于获取到更多的信息,深度抓取有助于得到更全面的信息。搜索引擎蜘蛛在抓取数据时,通常会两种方式都采用,但是相比较来说,广度抓取要多于深度抓取。
3、地址库
搜索引擎在建立初期,必须是要有一个人工录入的种子库的,否则蜘蛛将会在进行连接跟踪时无从下手。顺着这些种子库,蜘蛛可以发现更多的链接。
当然,多个搜索引擎都会放出一个页面的提交入口,以便于站长将站点进行提交。
不过值得一提的是,搜索引擎更喜欢自己发现的链接。
4、文件存储
链接跟踪完毕,需要将跟踪到的信息进行存储。存储的对象,第一是url,第二是页面内容(文件大小、最后一次更新时间、http状态码、页面源代码等等)。,西安网站建设推荐阅读>>> Baiduspider抓取过程中的策略,
关于url,由于上次看到一个泛端口作弊的站点,这里简单的提一下。一个url是由传输协议、域名、端口、路径、文件名等几部分组成的。
预处理【索引】
数据抓取完毕,就需要进行预处理了(也有很多人喜欢把这一步叫做索引)。主要会从提取文字、分词,建立索引,链接分析等几个方面来进行。
1、提取文字
很好理解的一部,将源代码中的文字提取出来。当然需要注意的是,这里面会包括meta信息以及一些替代文字(例如alt标签)。
2、分词
每到这一步,总是想感叹下汉字的博大精深。啊!啊!啊!
感叹完毕,继续走起。
分词是中文特有的一个步骤,即根据句子说要表达的意思将正文进行拆分。通常情况下,分词会有基于词典以及统计学两种方式。
为了更加有效的进行机器分词,通常会采用“正向匹配”与“逆向匹配”两种思路来进行。值得一提的是,“逆向匹配”的方式更容易获得更多有价值的信息(想想为什么)。
需要强调的一点是,为了便于分词之后的词组可以更好的表达文章的核心意思,会进行去停顿词(的、啊、嗯之类的词)以及去噪(导航、版权、分类等对主体意思表达木有影响分的内容)的处理。,西安做网站推荐阅读>>> 百度搜索引擎工作原理-抓取、过滤、建立索引和输出结果,
3、去重
经过去停顿,去噪之后剩下的词组,已经可以很好的表达出页面的主体意思了。为了便于使得内容不被搜索引擎重复收录,搜索引擎需要一个算法来进行去重处理。
比如比较知名且常用的为MD5算法,请点击链接到百度百科自行脑补。
4、建立索引
去重完毕,便是一个大家经常说起的正向索引与倒排索引。
5、链接算法
排名
索引文件建立完毕,离排名就不远了。
1、搜索词的处理
搜素引擎会对搜索词同样进行分词处理(想想为什么),说到这里,又不禁想感慨下汉字的博大精深之处。
针对这里,想补充的是一个叫做文本粒度的概念。额,为了避免误认子弟,还是给出百度官方关于此处的解释。
2、文件匹配与子集选择
按照百度官方的说法,将用户搜索的词进行分词处理之后,便可以对索引库进行召回了。这里需要考虑到的一点是,用户查看的往往会是前几页的搜索结果。所以为了资源计,搜索引擎往往会只返回部分的结果(百度显示76页,谷歌100页),即召回的索引库中的子集文件。
3、相关性计算
通常情况下,会有五种因素会影响到相关系。
关于此部分,也就是大家经常说到的SEO优化手段与方法,这里就不再赘述了。
4、排名过滤与调整
其实经过相关性计算,结果已经大体确定了。只是为了惩罚一些有作弊嫌疑的站点,搜索引擎会在此部分进行结果的微调。
比如百度的11位机制。西安做网站推荐阅读>>> 搜索引擎抓取系统概述,
5、结果的显示
深喘一口气,终于可以看到显示的结果了。
返回的结果会包含title、描述、快照入口、快照日期、url等几个方面。
这里值得一提的是,不只是描述搜索引擎可以动态抓取,或许在不久的将来,title也会进行动态抓取。
相关文章:
-
搜索引擎的工作的过程非常复杂,而简单的讲搜索引擎的工作过程大体可以分成三个阶段。 爬行和抓取:搜索引擎蜘蛛通过跟踪链接访问页面,获取页面HTML代码存入数据库。 预处理:搜索赢...
-
搜索引擎,通常指的是收集了因特网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容...
-
从输入关键词,到百度给出搜索结果的过程,往往仅需几毫秒即可完成。百度是如何在浩如烟海的互联网资源中,以如此之快的速度将您的网站内容展现给用户?这背后蕴藏着什么样的工作流...
-
百度站长平台Lee发布文章介绍了搜索引擎索引系统的大概工作流程。主要包括:Query串切词分词,查出含每个term的文档集合,求交,网站过滤,按需进行最终排序。,西安网站建设推荐阅读 百度...
-
众所周知,搜索引擎的主要工作过程包括:抓取、存储、页面分析、索引、检索等几个主要过程。过去几周给大家介绍了抓取相关的简要过程。今天简要介绍一下索引系统,以亿为单位的网页...
-
站长朋友们,今后定期都将在这里跟大家分享一些有关搜索引擎工作原理及网站运营相关的内容,今天先简单介绍一下关于搜索引擎抓取系统中有关抓取系统基本框架、抓取中涉及的网络协议...
-
spider在抓取过程中面对着复杂的网络环境,为了使系统可以抓取到尽可能多的有价值资源并保持系统及实际环境中页面的一致性同时不给网站体验造成压力,会设计多种复杂的抓取策略。以下...
-
从输入关键词,到百度给出搜索结果的过程,往往仅需几毫秒即可完成。百度是如何在浩如烟海的互联网资源中,以如此之快的速度将您的网站内容展现给用户?这背后蕴藏着什么样的工作流...
- 上一篇:搜索引擎抓取系统概述
- 下一篇:百度站长平台lee官方版:搜索引擎索引系统概述(一)