搜索引擎基本工作原理的搜索引擎

如题所述

  搜索引擎的主要工作过程包括:抓取、存储、页面分析、索引、检索、等几个主要过程。每个环节更是非常复杂。这里简单分抓取建库和索引排序两部分来讲解一下:


    Spider抓取建库


  互联网信息爆发式增长,如何有效的获取并利用这些信息是搜索引擎工作中的首要环节。数据抓取系统作为整个搜索系统中的上游,主要负责互联网信息的搜集、保存、更新环节,它像蜘蛛一样在网络间爬来爬去,因此通常会被叫做“spider”。例如我们常用的几家通用搜索引擎蜘蛛被称为:Baiduspdier、Googlebot、Sogou Web Spider等。

Spider抓取系统是搜索引擎数据来源的重要保证,如果把web理解为一个有向图,那么spider的工作过程可以认为是对这个有向图的遍历。从一些重要的种子 URL开始,通过页面上的超链接关系,不断的发现新URL并抓取,尽最大可能抓取到更多的有价值网页。对于类似百度这样的大型spider系统,因为每时 每刻都存在网页被修改、删除或出现新的超链接的可能,因此,还要对spider过去抓取过的页面保持更新,维护一个URL库和页面库。


下图为spider抓取系统的基本框架图,其中包括链接存储系统、链接选取系统、dns解析服务系统、抓取调度系统、网页分析系统、链接提取系统、链接分析系统、网页存储系统。Baiduspider即是通过这种系统的通力合作完成对互联网页面的抓取工作。


    检索排序


  在以亿为单位的网页库中查找特定的某些关键词犹如大海里面捞针,也许一定的时间内可以完成查找,但是用户等不起,从用户体验角度我们必须在毫秒级别给予用户满意的结果,否则用户只能流失。怎样才能达到这种要求呢?

如果能知道用户查找的关键词(query切词后)都出现在哪些页面中,那么用户检索的处理过程即可以想象为包含了query中切词后不同部分的页面集合求交的过程,而检索即变成了页面名称之间的比较、求交。这样,在毫秒内以亿为单位的检索成为了可能。这就是通常所说的倒排索引及求交检索的过程。如下为建立倒排索引的基本过程:

    页面分析的过程实际上是将原始页面的不同部分进行识别并标记,例如:title、keywords、content、link、anchor、评论、其他非重要区域等等;

    分词的过程实际上包括了切词分词同义词转换同义词替换等等,以对某页面title分词为例,得到的将是这样的数据:term文本、termid、词类、词性等等;

    之前的准备工作完成后,接下来即是建立倒排索引,形成{termàdoc},下图即是索引系统中的倒排索引过程。


  倒排索引是搜索引擎实现毫秒级检索非常重要的一个环节,下面我们要重要介绍一下索引系统建立倒排索引的重要过程——入库写库。


  索引系统在建立倒排索引的最后还需要有一个入库写库的过程,而为了提高效率这个过程还需要将全部term以及偏移量保存在文件头部,并且对数据进行压缩,这涉及到的过于技术化在此就不多提了。在此简要给大家介绍一下索引之后的检索系统。


  检索系统主要包含了五个部分,如下图所示:


  (1)Query串切词分词即将用户的查询词进行分词,对之后的查询做准备,以“10号线地铁故障”为例,可能的分词如下(同义词问题暂时略过):

    10  0x123abc
    号   0x13445d
    线   0x234d
    地铁 0x145cf
    故障 0x354df

(2)查出含每个term的文档集合,即找出待选集合,如下:
     0x123abc   1  2 3  4  7  9…..
     0x13445d   2  5 8  9  10  11……
      ……
      ……

(3)求交,上述求交,文档2和文档9可能是我们需要找的,整个求交过程实际上关系着整个系统的性能,这里面包含了使用缓存等等手段进行性能优化;(4)各种过滤,举例可能包含过滤掉死链、重复数据、色情、垃圾结果以及你懂的;(5)最终排序,将最能满足用户需求的结果排序在最前,可能包括的有用信息如:网站的整体评价、网页质量、内容质量、资源质量、匹配程度、分散度、时效性等等

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-12

在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置、频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。

相似回答