搜索引擎原理简介

来源:互联网 发布:pop协议端口 编辑:程序博客网 时间:2024/06/15 03:12
  搜索引擎可以分为4个系统:下载系统、分析系统、索引系统和查询系统。前三个是“离线系统”,最后一个是“在线系统”。

   下载系统负责从互联网上下载各种类型的网页,并且保持对互联网变化同步。首先是一个叫网络爬虫的程序在网页上抓取网页,抓取的算法主要有宽度优先和深度优先两种方式。然而,网页链接有可能出现死循环,这样就要避免重复抓取,重用的方法有用哈希表来记录下爬虫抓取的历史记录,和设定一个最大深度,用深度优先来抓取。在抓取的过程中,尽量保证先抓取重要性的网页,重要性一般由链接欢迎度、链接重要度和平均链接深度来决定。最后,为了快速的抓取,可以设置多个爬虫同时来抓取,一般按照域名分解,使得每个爬虫在不同的域名段内抓取。网页库的存放有三种方式:日志结构、基于哈希的结构和哈希日志。

   分析系统负责抽取下载系统得到的网页数据,并进行PageRank和分词计算。它的首要任务是从网页中抽取出有价值的属性,例如:标题、正文等,叫做网页结构化。网页结构化的过程首先通过标签树进行分析得到的文本对应的标签,然后通过投票算法确定正文及配图等仅从HTML标签无法判断的网页数据。为了节约存储和提高检索速度,必须对网页进行消重,主要有三个步骤:1.特征提取;2.相似度计算;3.消重。目前判断网页是否重复的算法有I-Match、Shingle和对文档中的权值最高的N个关键字组成的特征项集合比较等算法。之后是中文分词和计算PageRank值。PageRank算法是靠链接分析的一种算法。

   索引系统负责将分析系统处理后的网页对象索引入库。在此系统中重点是建立正排表和倒排表,正排表就是从文档到关键词的映射,倒排表正好相反,它是从关键字到文档的映射,根据关键字可以查找到它所在的文档编号,位置等信息。

   查询系统负责分析用户提交的查询请求,然后从索引库中检索出相关网页并将网页排序后返回给用户。当用户输入查询词后,首先组成查询词向量,然后求出包含这些查询词的文档,即文档求交,文档求交可以采用最佳归并树算法,然后对查询词用TF/IDF方法向量化,之后和文档(只需要PageRank排名靠前的一部分)的向量化求向量相似度,最后降序输出。自动摘要是对变动的滑动窗口内的关键词投票算法生成的。