嗯,这是昆明网站建设技术研发中心官网,架构符合国际W3C标准
服务热线:0871-63535511 | 招募优秀网站前端设计师,高酬

昆明网站建设总结一下现在搜索引擎的基础流程与原理

昆明网站建设总结一下现在搜索引擎的基础流程与原理

搜索引擎为了应付日益增多的搜索需求,同时为了保证搜索的速度,对网站的内容进行越来越多的缓存。所以我们在搜索引擎搜索时所得到的结果并不是即时的,而是在搜索引擎服务器已经缓存好了的搜索结果。最近昆明网站建设研究了一下搜索引擎的原理,和大家分享一下。

1.搜索引擎服务器派出蜘蛛抓取

蜘蛛所做的事分三种:

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

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

3)蜘蛛抓取过,但现在已删除了的页面。

但蜘蛛是如何进行运作的呢,这就要知道蜘蛛最开始是从什么地方开始抓取的。

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

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

(这里要注意的是,对百度来说,site的数值并非是蜘蛛已抓取你页面的数值。比如site:www.aaa.com,所得出的数值并不是大家常说的百度收录数值,想查询具体的百度收录量应该在百度提供的站长工具里查询索引数量。)

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

2.预处理

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

1) 提取关键词

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

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

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

2) 消除重复与转载网页

每个搜索引擎其识别重复页面的算法均不相同,但昆明网站建设认为,若将消重算法理解为由100个元素组成,那么所有的搜索引擎恐怕其80个元素都是 完全一样的。而另外20个元素,则是根据不同的搜索引擎针对seo的态度不同,而专门设立的对应策略。

3) 重要信息分析

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

4) 网页重要度分析

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

5) 倒排文件

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

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

如果http://www.AAA.com/9.html页面被切词成p={p1,p2,p3,……,pn},则其在索引数据库中由上图方式体现。

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

2.查询服务

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

1) 根据查询方式与关键词进行切词

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

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

2) 搜索结果排序

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

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

当有了搜索结果后,搜索引擎就会将搜索结果展示在用户阅览的界面上以供用户使用。然而,我们可以思考两个问题。

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

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

这两个问题不同人有不同见解,大家各自思考吧!

4. 现今百度的流程漏洞

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

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

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

5.搜索引擎大致的流程图

这就是昆明网站建设总结的现在搜索引擎大致基础流程与原理,希望对大家有所帮助。
 

POST TIME:2014年12月15日
 
×

网站价格咨询0871-63535511

首选移动咨询方式15368242187网站建设李

备用咨询电话15925207101

QQ咨询方式381068446 李工

您也可以将联系方式给到我们,由我们电话回拨给您
点击这里给我
发消息
云南盈岚科技有限公司_全国十佳E-Business咨询顾问机构