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