有思俱乐部学习园地

搜索引擎的原理


一、什么是搜索引擎


    一个搜索引擎由搜索器 、索引器 、检索器 和用户接口 四个部分组成。搜索器的功能是在互联网 中漫游,发现和搜集信息。索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档 以及生成文档库的索引表。检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。
搜索引擎的原理

            

二、搜索引擎的工作原理


    搜索引擎的工作主要分为以下三步
    搜索引擎的原理
    爬行和抓取:
    搜索引擎蜘蛛通过跟踪链接访问页面,获得页面HTML代码存入数据库。
    搜索引擎用来爬行和访问页面的程序被称为蜘蛛,蜘蛛访问页面时类似普通用户使用浏览器一样,蜘蛛向页面提出请求,服务器返回HTML代码,然后蜘蛛将收到的代码存入数据库。蜘蛛在访问任何一个页面之前都会先访问网站根目录下的robots.txt文件,文件里面会按格式写禁止搜索引擎抓取的某些文件或者目录。
    蜘蛛为了抓取更多的页面,会从一个页面上跟踪链接爬到另一个页面上,并且蜘蛛会采取一定的爬行策略,分为两种,一种是深度优先,一种是广度优先。
    搜索引擎的原理
    理论上说只要给蜘蛛足够的时间,都能爬完完整的互联网,但是实际上蜘蛛的资源和时间都不是无限的,所以只能爬行和收录互联网的一小部分,为此我们需要让自己的页面更多的被收录,要尽量的吸引蜘蛛爬行,蜘蛛会尽量抓取重要页面,主要有一下几方面的影响因素:
    网站和页面权重高,质量高,资格老的网站被认为权重比较高,这样的网站在页面的爬行的深度也会比较高,有更多的内页被收录
    页面的更新度,蜘蛛每次爬行都会将数据存储起来,如果第二次发现页面和第一次的收录的完全一样,说明页面没有更新,蜘蛛也就没必要经常抓取,如果页面经常更新,蜘蛛也会更加频繁的访问这种页面。
    导入链接,无论是外部链接还是同一个网站的内部链接,要被蜘蛛抓取必须有导入链接进入页面,否则蜘蛛没机会知道页面的存在,高质量的导入链接也经常使页面上的导出链接被抓取到。
    与首页点击距离,一般来说网站权重最高的是首页,大部分外联是指向首页的,蜘蛛访问最频繁的也是首页。离首页点击距离越近,页面权重越高,蜘蛛爬行机会也越大。
    并且蜘蛛为了避免重复爬行和抓取页面,会建立一个地址库,记录被发现还没有抓取的页面和已经抓取的页面。

    地址库的来源主要有:
    1.人工录入的种子网站。
    2.蜘蛛爬行页面后从代码中解析出新的链接。
    3.站长通过搜索引擎页面提交进去的网站。

    一般来说站长提交的网站存入地址库后,是否收录还要看页面的重要性如何,因为搜索引擎所收录的绝大部分页面时蜘蛛自己跟踪链接得到的,搜索引擎更新欢自己沿着链接发现新页面。
    蜘蛛在爬行时会进行一定程度的复制内容检测,如果遇到权重很低的网站上大量转载或抄袭内容时,可能不在进行爬行,导致在网站日志中发现了蜘蛛,但是页面没有被收录的可能。

    预处理:
    索引程序对抓取来的页面数据进行文字提取,中文分词,索引等处理,以备排名程序调用。
    蜘蛛在网上抓取的原始页面并不能直接用于查询排名处理
    首先要讲html文件中取出标签、程序,提取出可以用于排名处理的网页文字内容,除了可见文字以外,搜索引擎也会提取出一些特殊包含文字信息的代码,例如:Meta标签中的文字、图片代替文字等。
    然后进行分词,搜索引擎存储和处理页面及用户搜索都是以词为基础的,搜索引擎必须首先分辨哪几个字组成一个词,哪些字本身就是一个词,例如:减肥方法将被分为减肥和方法两个词。
    接着搜索引擎会将在页面内容出现频率高但是对内容没有影响的词去掉例如:的 地 得的助词,或者啊 哈 呀之类的感叹词,这是词叫停止词,去掉这些停止词会使索引数据主题更加突出,减少计算量。
    接着是消除噪音,对页面主题没贡献的内容:如版权声明,导航条,广岛等。
    然后是去重,这一步是搜索引擎对相同文章重复出现在不同网站上的内容,搜索引擎希望只返回一篇,索引在索引前进行识别和删除重复内容。
    之后通过正向索引和倒排索引,正向索引是将关键词提取出来,转换为一个个集合,同事记录关键词在页面出现的频率、次数、格式、位置等,而倒排索引则是把关键词当成主键,一个关键词里面对应着一系列的文件,这些文件都出现了这个关键词,当用户搜索这个关键词的是,就在相应的关键词中找出包含关键词的文件
    再之后还会计算链接关系,再搜索引擎抓取页面后,需要计算出页面上有哪些链接指向哪些页面,每个页面有哪些导入链接等等,这些链接指向关系形成了网站和页面的链接权重,也被我们称之为PR值。
    最后搜索引擎还会对特殊文件进行处理,除了HTML文件外可能还会抓取到PDF、Word、WPS、XLS、PPT、TXT文件等,需要从中读取文字,目前搜索引擎对图片、视频、Flash这些非文字内容还不是很友好。

    排名:
    在用户输入关键词后,排名程序调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面
    搜索引擎在接受到用户输入的搜索词后,也需要对搜索词进行一些处理包括:中文分词、去停止词、指令处理、拼写错误矫正、整合搜索触发。
    对搜索词进行处理之后,在倒排索引似的文件匹配能够快速完成
    初始子集的选择,在找到匹配文件后还不能进行相关性计算,因为找到的文件太多,所以搜索引擎同城会用一个非相关性特征选出一个初始子集。
    
    相关性计算的主要因素包括:
    1.关键词的常用程度,经过分词后的关键词对整个搜索字符串的意义共享度的差别,例如:搜索我们冥王星,我们这个词的常用度非常高,但是对我们这个搜索词的识别度和意义相关度的共享很小,所以搜索引擎会根据常用度进行加权,不常用的词加权系数高,常用词加权系数低,排名算法对不常用的词给予更多关注。
    2.词频及密度,一般认为在没有关键词堆积的情况下,搜索词在页面中出现的次数多,密度越高,说明页面与搜索词越相关,着只是一个大致规律,实际未必如此,这个因素在相关性计算中重要程度越来越低
    3.关键词位置及形式,关键词出现在页面的格式和位置都被记录在索引库中,如果关键词出现在比较重要的地方,则相关性也会增加
    4.关键词距离,切分后关键词完整匹配的出现说明搜索词最相关,例如:搜素减肥方法时,页面连续出现完整的减肥方法四个字是最相关的。
    5.链接分析及页面权重,除了页面本身的因素外,页面之间的链接和权重关系也影响关键词的相关性,其中最重要的是锚文字,页面有越多以搜索词为锚文字的导入链接,说明页面相关性越强,链接分析还包括链接源页面本身的主题和锚文字周围的文字等。
    
    计算完相关性后大致排名就确定了,之后可能还有一些过滤算法,对排名进行微调,主要是施加惩罚,一些有作弊嫌疑的页面,虽然在正常权重和相关性计算排在前面,但是搜索引擎的惩罚算法可以吧页面调到后面去。
    最后排名就会显示在页面的搜索结果页中,并调用原始页面的标题标签,说明标签等。搜索引擎还会对用户最常见的搜索词存入缓存,用户搜索时直接调用,并且在对用户进行一定的记录,入ip地址、搜索的关键词、搜索时间、以及点击了哪些结果页面等形成日志,对调整搜索算法有重要意义。
    
    学习任务:能够准确的说出搜索引擎的工作原理,并大致描述,如何进行搜索引擎优化。

            

工作人员

                    
文档编写:14互联网G5-2班 陈安嘉
页面录入:15互联网G5-3班 张科