1、搜索引擎技术介绍搜索引擎技术介绍20072007年年年年8 8月月月月目录目录目录目录一、一、搜索引擎总体介绍搜索引擎总体介绍二、爬虫技术介绍二、爬虫技术介绍三、中文分词和排序算法介绍三、中文分词和排序算法介绍四、查询四、查询/存储技术、存储技术、Cache Server介绍介绍五、内部、外部监控系统介绍五、内部、外部监控系统介绍六、移动通信六、移动通信运营商搜索引擎独特优势运营商搜索引擎独特优势一、搜索引擎总体介绍一、搜索引擎总体介绍(一一)搜索引擎定义搜索引擎定义“搜索引擎搜索引擎”技术,完全来源于历史悠久的全文检索技术。技术,完全来源于历史悠久的全文检索技术。“搜索引擎搜索引擎”从字面上
2、可拆分为从字面上可拆分为“搜搜”、“索索”、“引擎引擎”三个含义。三个含义。“搜搜”就是大量信息的抓取,抓取回来后的信息进行智能提就是大量信息的抓取,抓取回来后的信息进行智能提取、排重、质量分析等处理。取、排重、质量分析等处理。“索索”就是大量处理后信息的存储、信息排序、快速查询就是大量处理后信息的存储、信息排序、快速查询等。等。“引擎引擎”就是指系统不但能存储亿级的数据,而且还能有就是指系统不但能存储亿级的数据,而且还能有巨大的并发处理能力,这样的系统才有资格被叫着巨大的并发处理能力,这样的系统才有资格被叫着“引擎引擎”。一、搜索引擎总体介绍一、搜索引擎总体介绍(二二)搜索引擎和移动搜索引擎
3、搜索引擎和移动搜索引擎 搜索引擎也可以看成为搜索引擎也可以看成为“专家系统专家系统”,通过把数百亿互联,通过把数百亿互联网网页所提供的信息,作为其庞大的网网页所提供的信息,作为其庞大的“知识库知识库”,通过用,通过用户的输入词,找到相关信息。户的输入词,找到相关信息。从技术上来讲,基于手机的移动搜索引擎,在其技术上和从技术上来讲,基于手机的移动搜索引擎,在其技术上和搜索引擎是完全一样的。搜索引擎是完全一样的。用户查询信息的媒体,由用户查询信息的媒体,由PC被手机替代,可以随时随地提被手机替代,可以随时随地提供搜索服务,用户更方便地进行信息查询。并且,手机的供搜索服务,用户更方便地进行信息查询。
4、并且,手机的用户群体是远大于用户群体是远大于PC用户群体,所以,移动搜索引擎肯定用户群体,所以,移动搜索引擎肯定是搜索引擎领域未来发展的重点和方向。是搜索引擎领域未来发展的重点和方向。一、搜索引擎总体介绍一、搜索引擎总体介绍(三三)搜索引擎主要核心技术:搜索引擎主要核心技术:搜索引擎主要核心技术为搜索引擎主要核心技术为:(1)中英文分词语言处理;中英文分词语言处理;(2)排序算法;排序算法;(3)网络爬虫;网络爬虫;(4)查询查询/存储技术存储技术 开发搜索引擎系统主要涉及到的具体技术为:开发搜索引擎系统主要涉及到的具体技术为:(1)http网络协议网络协议.(2)多线程技术多线程技术.(3)
5、socket通信通信.(4)高效服务端程序开发高效服务端程序开发.一、搜索引擎总体介绍一、搜索引擎总体介绍(四四)系统图:系统图:二、爬虫技术介绍二、爬虫技术介绍(一一)爬虫技术总体介绍:爬虫技术总体介绍:网络爬虫是一个自动提取网页的程序,它为搜索引擎网络爬虫是一个自动提取网页的程序,它为搜索引擎从从Internet网上下载网页,是搜索引擎的重要组成。网上下载网页,是搜索引擎的重要组成。网络爬虫网络爬虫使用多线程技术,让爬虫具备更强大的抓取使用多线程技术,让爬虫具备更强大的抓取能力。通过能力。通过DNS Cache技术,减少爬虫对技术,减少爬虫对DNS的访问的访问频率,避免频率,避免DNS成为
6、网络瓶颈,提高抓取速度。成为网络瓶颈,提高抓取速度。网络爬虫网络爬虫还要完成信息提取任务,对于抓取回来的网还要完成信息提取任务,对于抓取回来的网页提取出来页提取出来:新闻、电子图书、行业信息等。对于新闻、电子图书、行业信息等。对于MP3、图片、图片、Flash等各种不同内容,要实现自动识等各种不同内容,要实现自动识别、自动分类及相关属性测试(例如:别、自动分类及相关属性测试(例如:MP3文件要包文件要包含的文件大小,下载速度等属性)。含的文件大小,下载速度等属性)。二、爬虫技术介绍二、爬虫技术介绍(二二)抓取对象:抓取对象:1.静态网页:爬虫从一个或若干初始网页的静态网页:爬虫从一个或若干初始
7、网页的URL开始,获得初始网开始,获得初始网页上的页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列放入队列,直到满足系统的一定停止条件。直到满足系统的一定停止条件。2.动态网页动态网页:分析动态网页参数,按照一定规章,分析动态网页参数,按照一定规章,“拼拼”出所有要被出所有要被抓取内容抓取内容URL,只抓取这些特定范围内动态网页。,只抓取这些特定范围内动态网页。3.特殊内容:比如特殊内容:比如RSS、XML数据,情况特殊需特殊处理。如新闻数据,情况特殊需特殊处理。如新闻的滚动新闻页面,需要爬虫不停地监控扫描,发现新内容马上就
8、进的滚动新闻页面,需要爬虫不停地监控扫描,发现新内容马上就进行抓取。行抓取。4.文件对象:图片,文件对象:图片,MP3、Flash、视频等文件的抓取,都要特殊、视频等文件的抓取,都要特殊处理。比如说:图片抓取出来后,要知道图片文件类型、图片文件处理。比如说:图片抓取出来后,要知道图片文件类型、图片文件的大小、图片的像素大小,还要转换出来缩略图。的大小、图片的像素大小,还要转换出来缩略图。二、爬虫技术介绍二、爬虫技术介绍(三三)抓取策略:抓取策略:1.深度优先策略:对于一些大网站及静态网页为主的抓取内容,深度优先策略:对于一些大网站及静态网页为主的抓取内容,采取深度策略抓取,便于在最短时间内获得
9、最大量内容。采取深度策略抓取,便于在最短时间内获得最大量内容。2.广度优先策略广度优先策略:对于一些动态网页或小网站,采取广度策略抓对于一些动态网页或小网站,采取广度策略抓取,同时对多个网站进行抓取,减小对各个小网站的压力,避取,同时对多个网站进行抓取,减小对各个小网站的压力,避免造成恶意攻击。免造成恶意攻击。3.合作抓取策略合作抓取策略:由被抓取网站,提供可被抓取内容的由被抓取网站,提供可被抓取内容的sitemap网站地图,双方协议好,只抓取这些特定内容,在抓取速度及网站地图,双方协议好,只抓取这些特定内容,在抓取速度及时间上双方前期进行协商。另外还可以完全由被抓取方,提供时间上双方前期进行
10、协商。另外还可以完全由被抓取方,提供详细内容,抓取过程都可以省略一些步骤。详细内容,抓取过程都可以省略一些步骤。二、爬虫技术介绍二、爬虫技术介绍(四四)爬虫程序介绍:爬虫程序介绍:1.单线程模型单线程模型 URL 任务列表任务列表互联网互联网DNS CacheDNS内容处理,分内容处理,分析出新的析出新的URL,URL检查检查二、爬虫技术介绍二、爬虫技术介绍(四四)爬虫程序介绍:爬虫程序介绍:2.多线程模型(省略掉多线程模型(省略掉DNS Cache部分)部分)URL 任务列表任务列表互联网互联网.线程线程1临界区临界区线程线程2线程线程N二、爬虫技术介绍二、爬虫技术介绍(四四)爬虫程序介绍:
11、爬虫程序介绍:3.爬虫集群模型爬虫集群模型 URL 任务列表任务列表互联网互联网.Spider管理器管理器Spider 1Spider 2Spider N二、爬虫技术介绍二、爬虫技术介绍(五五)内容提取:内容提取:内容提取是模式识别学科范围内容,对获得的信息进行预处理后,内容提取是模式识别学科范围内容,对获得的信息进行预处理后,按照特征值提前和选择,最后进行内容的识别。内容提取的准确率受算按照特征值提前和选择,最后进行内容的识别。内容提取的准确率受算法影响较大,尤其是新闻、图片等内容。动态网页比较容易的通过网页法影响较大,尤其是新闻、图片等内容。动态网页比较容易的通过网页比对,整理出其网页设计
12、模板,按照模板可以准确率较高的完成提取。比对,整理出其网页设计模板,按照模板可以准确率较高的完成提取。网页内容的正确提取,对排序算法设计,也有非常重要的影响。网页内容的正确提取,对排序算法设计,也有非常重要的影响。判断两个内容是否相同的排重算法,一般按照贝叶斯决策理论进行处理,判断两个内容是否相同的排重算法,一般按照贝叶斯决策理论进行处理,判断两个内容的相似度,最常用于相同新闻的判断。判断两个内容的相似度,最常用于相同新闻的判断。信息获得信息获得 预处理预处理特征值提取和选择特征值提取和选择训练过程训练过程分类器设计分类器设计分类决策分类决策二、爬虫技术介绍二、爬虫技术介绍(五五)内容提取:内
13、容提取:因为目前因为目前WAP网页数据总量过少,另外网页数据总量过少,另外WAP网页包含数据也过少,在基于网页包含数据也过少,在基于WAP网页的搜索引擎中,带给用户的信息总量网页的搜索引擎中,带给用户的信息总量过少,所以基于过少,所以基于WAP内容的搜索发展缓内容的搜索发展缓慢。慢。对对Web网页内容如能进行提取出最关键内网页内容如能进行提取出最关键内容,有一套高效的智能内容提取程序。在容,有一套高效的智能内容提取程序。在移动搜索引擎中,搜索内容为智能提取出移动搜索引擎中,搜索内容为智能提取出来的来的Web网页内容,这将大大加快移动搜网页内容,这将大大加快移动搜索服务发展。索服务发展。Web网
14、页内容的智能提取,属于复杂数网页内容的智能提取,属于复杂数据类型挖掘,其程序算法难度非常大。据类型挖掘,其程序算法难度非常大。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:自然语言理解和处理,是人工智能的自然语言理解和处理,是人工智能的重要的研究领域之一,是语言学、逻重要的研究领域之一,是语言学、逻辑学、生理学、心理学、计算机科学辑学、生理学、心理学、计算机科学和数学等相关学科发展和结合而形成和数学等相关学科发展和结合而形成的一门交叉学科。的一门交叉学科。分词作为搜索引擎的一项核心功能,分词作为搜索引擎的一项核心功能,和存储和查询有重大关系。但是不同和存储和查
15、询有重大关系。但是不同的研究角度,不同的研究方向,带来的研究角度,不同的研究方向,带来研究重点和研究结果都是不一样的。研究重点和研究结果都是不一样的。语言学方向研究的分词算法,看重分语言学方向研究的分词算法,看重分词的准确性,不看重运算速度;而搜词的准确性,不看重运算速度;而搜索引擎的分次算法,特别看重分词速索引擎的分次算法,特别看重分词速度,分词准确性中等。度,分词准确性中等。语言语言词汇词汇语法语法词词熟语熟语词素词素词法词法句法句法造句法造句法词组构造法词组构造法构形法构形法 构词法构词法三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:以英文为代表的字母型
16、文字,按照空格和标点符号比较容易实现分以英文为代表的字母型文字,按照空格和标点符号比较容易实现分词,而以中文为代表的东亚语系文字,在分词方面,却存在巨大的词,而以中文为代表的东亚语系文字,在分词方面,却存在巨大的困难。困难。据说百度(也包括北大天网)在早期时,所有的中文文字,全部拆据说百度(也包括北大天网)在早期时,所有的中文文字,全部拆分为一个个的单字,搜索效果比较差。但也有特殊效果,比如说:分为一个个的单字,搜索效果比较差。但也有特殊效果,比如说:搜搜“我为秋香我为秋香”,能够搜到唐伯虎的著名藏头文。,能够搜到唐伯虎的著名藏头文。我我康宣今年一十八岁,姑苏人氏,身家清白,素无过犯。只康宣今
17、年一十八岁,姑苏人氏,身家清白,素无过犯。只为为家况清贫,鬻身华相府中,充当书僮。身价银五十两,自家况清贫,鬻身华相府中,充当书僮。身价银五十两,自秋秋节起,暂存帐房,俟三年后支取。从此承值书房,每日焚节起,暂存帐房,俟三年后支取。从此承值书房,每日焚香香扫地,洗砚磨墨等事,听凭使唤。从头做起,立契为凭。扫地,洗砚磨墨等事,听凭使唤。从头做起,立契为凭。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:搜索引擎的中文分词,在算法上有两种,一个用于后台索引处理,搜索引擎的中文分词,在算法上有两种,一个用于后台索引处理,一个用于前端对搜索词进行分词处理。一个用于前端对
18、搜索词进行分词处理。比如说:有一条纪录内容为比如说:有一条纪录内容为“中国人民解放军中国人民解放军”。在构建后台索引时,可分词为:在构建后台索引时,可分词为:“中国人民解放军中国人民解放军”、“中国中国”、“人民人民”、“解放军解放军”、“中中”、“国国”、“人人”、“民民”、“解解”、“放放”、“军军”,对这,对这11个字词都要建立索引。这样做个字词都要建立索引。这样做的目的是为了,当搜索词为上面这的目的是为了,当搜索词为上面这11种中任何一个时,都能在各自种中任何一个时,都能在各自索引库中找到索引库中找到“中国人民解放军中国人民解放军”这条纪录。这条纪录。搜索词为搜索词为“中国人民解放军中
19、国人民解放军”,在其前端的分词处理,就只分词为:,在其前端的分词处理,就只分词为:“中国人民解放军中国人民解放军”或或“中国中国+人民人民+解放军解放军”或或“中国中国+人民解放人民解放军军”。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:因为中文本身存在着很大的歧义性,同样一句话,不同的断句,因为中文本身存在着很大的歧义性,同样一句话,不同的断句,表达的意思就不一样。这对于计算机去做机器分析,就带来了巨表达的意思就不一样。这对于计算机去做机器分析,就带来了巨大的困难。大的困难。下面的中文断句,来自百度广告宣传片下面的中文断句,来自百度广告宣传片:我知道你不知
20、道我知道你不知道我知道你不知道我知道你不知道我知道你不知道我知道你不知道我知道,你不知道。我知道,你不知道我知道,你不知道我知道,你不知道。我知道,你不知道我知道,你不知道我知道你,不知道我。知道你不知道我,知道你不知道我知道你,不知道我。知道你不知道我,知道你不知道我,知道你不知道我知道。你,不知道我知道你不知道我,知道你不知道我知道。你,不知道我知道你不知道 三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:另外中文的具体含义,还必须放在具体的前后语言环境中去分析。另外中文的具体含义,还必须放在具体的前后语言环境中去分析。比如说:比如说:乒乓球拍卖完了乒乓球拍
21、卖完了我去学校我去学校商店商店,发现乒乓,发现乒乓 球拍球拍 卖卖 完完 了了在今天的在今天的慈善拍卖会慈善拍卖会上,世界冠军们夺冠时的乒乓球上,世界冠军们夺冠时的乒乓球 拍卖拍卖 完完 了了 中文分词,在具体的算法实现上分为三种:中文分词,在具体的算法实现上分为三种:1.字符串匹配字符串匹配(正序、逆序、最少切分、最大切分等正序、逆序、最少切分、最大切分等)2.基于理解(词法,句法等方式处理)基于理解(词法,句法等方式处理)3.基于统计基于统计在中文搜索引擎中,目前基本上是这三种算法混合使用。第二种的算在中文搜索引擎中,目前基本上是这三种算法混合使用。第二种的算法实现起来过于复杂,所以以第一
22、种和第三种算法为主。法实现起来过于复杂,所以以第一种和第三种算法为主。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(一一)中文分词:中文分词:语言本身也是在不停的进化和发展的,新的词语层出不穷,一些老语言本身也是在不停的进化和发展的,新的词语层出不穷,一些老的词语渐渐被弃用。作为中文分词的基础的词语渐渐被弃用。作为中文分词的基础-词库,其新词补充和词库,其新词补充和老词删除就是非常重要的工作。老词删除就是非常重要的工作。“超级女声超级女声”、“超女超女”、“李宇春李宇春”、“八荣八耻八荣八耻”、“非典非典”,当这些新词的出现时,搜索引擎需要快速捕捉到,并且马上把其,当这些新词的出现时,
23、搜索引擎需要快速捕捉到,并且马上把其添加到分词系统中去。添加到分词系统中去。如何判断那些词是新词,这就全部倚靠算法来实现。新词捕捉主要如何判断那些词是新词,这就全部倚靠算法来实现。新词捕捉主要来源于新闻和网络来源于新闻和网络BBS论坛,主要机制是依靠统计程序,统计上升论坛,主要机制是依靠统计程序,统计上升速度最高的词。另外作为搜索引擎公司,对众多用户的搜索词进行速度最高的词。另外作为搜索引擎公司,对众多用户的搜索词进行“用户行为用户行为”分析,也能提高其分析,也能提高其“新词补充新词补充”效果。效果。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(二二)排序算法:排序算法:搜索引擎的排序
24、算法(搜索引擎的排序算法(ranking algorithm),决定了各个网页、图),决定了各个网页、图片、片、MP3等数据的重要性排列顺序,也决定了最终用户查询到的数等数据的重要性排列顺序,也决定了最终用户查询到的数据排序。搜索引擎的据排序。搜索引擎的排序算法排序算法是人工智能的完满体现,它是对百亿是人工智能的完满体现,它是对百亿级数据进行重要性分析的数学实现。级数据进行重要性分析的数学实现。“PageRank”是是Google公司在排序算法上的专利技术,也是公司在排序算法上的专利技术,也是Google能从众多搜索引擎公司中脱颖而出的最核心技术,作为其搜索服务能从众多搜索引擎公司中脱颖而出的
25、最核心技术,作为其搜索服务能够超过其他竞争对手最有力的武器。能够超过其他竞争对手最有力的武器。不同搜索引擎公司不同搜索引擎公司排序算法排序算法的优劣,直接决定了广大搜索引擎用户的优劣,直接决定了广大搜索引擎用户对搜索服务的选择,在互联网上,一个普通用户更换搜索服务只需对搜索服务的选择,在互联网上,一个普通用户更换搜索服务只需要要5秒钟,所以秒钟,所以排序排序算法就成为了各个搜索引擎公司最核心机密。算法就成为了各个搜索引擎公司最核心机密。另外,每个搜索引擎公司也必须不停地改进其另外,每个搜索引擎公司也必须不停地改进其排序排序算法。算法。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(二二)
26、排序算法:排序算法:排序算法部分参考指标:排序算法部分参考指标:指标指标加分加分减分减分网站硬件指标网站硬件指标网站网络好,系统稳定网站网络好,系统稳定网站系统不稳定,网络不好网站系统不稳定,网络不好网站包含网页数网站包含网页数总网页数目多总网页数目多总网页数目少总网页数目少网页大小网页大小网页大小适中网页大小适中网页多大或过小网页多大或过小其他网页链到本网页其他网页链到本网页数目多数目多数目少数目少网页内网页内URL数数数目适中数目适中过多或过少过多或过少网页相关性网页相关性URL连接网页是相关内容连接网页是相关内容URL连接网页不是相关内容连接网页不是相关内容网页更新网页更新/生成日期生成
27、日期日期近的日期近的日期远的日期远的网页类型网页类型静态网页静态网页动态网页动态网页网页内样式网页内样式网页设计样式中等网页设计样式中等网页设计样式过于复杂或简单网页设计样式过于复杂或简单网页具体内容网页具体内容分词后,各个词权重总和高分词后,各个词权重总和高分词后,各个词权重总和低分词后,各个词权重总和低用户访问行为用户访问行为点击多的网页点击多的网页点击少的网页点击少的网页三、中文分词和排序算法介绍三、中文分词和排序算法介绍(二二)排序算法:排序算法:排序算法虽然解决了网页排序的问题,但是有时候有些搜索结果还排序算法虽然解决了网页排序的问题,但是有时候有些搜索结果还是很难让用户满意。为此,
28、搜索引擎排序算法一项重要改进:是很难让用户满意。为此,搜索引擎排序算法一项重要改进:“聚聚类类”,就被引进来提高排序效果。,就被引进来提高排序效果。“聚类聚类”方法,是把网页分类成各种不同类型,比如说:分类为方法,是把网页分类成各种不同类型,比如说:分类为“体育体育”、“娱乐娱乐”、“军事军事”、“旅游旅游”、“金融金融”、“政治政治”、“汽车汽车”、“房产房产”等。针对每一种分类,各自有一套专用的排序等。针对每一种分类,各自有一套专用的排序算法。算法。当查询词为当查询词为“高尔夫高尔夫”时,查询结果为时,查询结果为“体育体育”+“汽车汽车”,排序,排序算法为通用算法;但当查询词为算法为通用算
29、法;但当查询词为“高尔夫高尔夫 伍兹伍兹”时,其分类就能确时,其分类就能确定为定为“体育体育”,其排序算法就采用,其排序算法就采用“体育体育”类别的算法。类别的算法。三、中文分词和排序算法介绍三、中文分词和排序算法介绍(二二)排序算法:排序算法:排序算法是决定了各个网页的排序,但是对于一些特殊情况,也需排序算法是决定了各个网页的排序,但是对于一些特殊情况,也需要要“人工干预人工干预”,毕竟一个通用算法并不能解决所有问题。,毕竟一个通用算法并不能解决所有问题。比如说:查询词为比如说:查询词为“北理北理”,其实含义是,其实含义是“北京理工大学北京理工大学”。在。在Google的搜索结果中,第一个就
30、是的搜索结果中,第一个就是“北京理工大学北京理工大学”,但在,但在“北京北京理工大学理工大学”网页中根本找不到网页中根本找不到“北理北理”两个字。以下是搜索结果:两个字。以下是搜索结果:北京理工大学北京理工大学以工为主,包含理工、管理、法律、外语的多科性全国重点大学。以工为主,包含理工、管理、法律、外语的多科性全国重点大学。 “人工干预人工干预”是排序算法,非常重要的一个补充,大大改进了搜索是排序算法,非常重要的一个补充,大大改进了搜索结果。搜索引擎公司的竞价排名和滚动排名,也都是结果。搜索引擎公司的竞价排名和滚动排名,也都是“人工干预人工干预”的范畴。的范畴。四、查询四、查询/存储技术、存储
31、技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:存储技术是搜索引擎在提供搜索服务时的关键技术,系统如何去存储存储技术是搜索引擎在提供搜索服务时的关键技术,系统如何去存储上百亿的网页数据,如何科学高效地提供搜索结果,这些都会影响用上百亿的网页数据,如何科学高效地提供搜索结果,这些都会影响用户的户的“搜索用时搜索用时”。搜索引擎之所以能够给同时给众多用户,在豪秒级的范围内就能提供搜索引擎之所以能够给同时给众多用户,在豪秒级的范围内就能提供搜索结果,其技术秘密就是绝大部分查询结果都是提前完成运算,搜搜索结果,其技术秘密就是绝大部分查询结果都是提前完
32、成运算,搜索结果早已存储在其服务器上。索结果早已存储在其服务器上。数据的存储,当然会受硬件条件的影响,不能够把所有数据都存储在数据的存储,当然会受硬件条件的影响,不能够把所有数据都存储在内存中,部分数据还需存储在硬盘中,这其中就有个存储策略。存储内存中,部分数据还需存储在硬盘中,这其中就有个存储策略。存储网页数据时,权值高的网页数据存储在内存,权值低的存储在硬盘。网页数据时,权值高的网页数据存储在内存,权值低的存储在硬盘。四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:搜索引擎的数据存储主要分为两部分:搜索引擎
33、的数据存储主要分为两部分:第一部分:网页数据,包含:网页编号、第一部分:网页数据,包含:网页编号、URL、标题、内容摘要、标题、内容摘要、网页大小等。网页大小等。第二部分:词库索引数据,包含:中文词库中的字词、英文单词、每第二部分:词库索引数据,包含:中文词库中的字词、英文单词、每个字词对应网页编号队列等。个字词对应网页编号队列等。网页编号是唯一编号,不得重复。查询时,通过词库索引得到网页编网页编号是唯一编号,不得重复。查询时,通过词库索引得到网页编号,然后在网页数据中,得到各自网页的相关数据。号,然后在网页数据中,得到各自网页的相关数据。四、查询四、查询/存储技术、存储技术、Cache Se
34、rverCache Server介绍介绍(一一)查询查询/存储技术:存储技术:对于每一个网页,包含:网页编号、对于每一个网页,包含:网页编号、URL、标题、内容摘要、网页、标题、内容摘要、网页大小等信息。可由下面结构体来描述:大小等信息。可由下面结构体来描述:(1)网页编号网页编号 char16(2)URLchar256(3)标题标题char56(4)内容摘要内容摘要 char256(5)网页大小网页大小 char8 这样一来,每个网页数据的存储大小为这样一来,每个网页数据的存储大小为592字节。网页数据的字节。网页数据的网页网页编编号是连续的,所以网页数据的存储也可以连续存储。号是连续的,所
35、以网页数据的存储也可以连续存储。四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:“网页数据网页数据”的存储分为内存存储和硬盘文件存储两种方式的存储分为内存存储和硬盘文件存储两种方式:(1)内存存储方式时,因为每个网页数据都是大小一样的,再加上数据存内存存储方式时,因为每个网页数据都是大小一样的,再加上数据存储是连续的,所以在查询时,只要知道数据存储的起始位置,就可直接储是连续的,所以在查询时,只要知道数据存储的起始位置,就可直接算出网页数据的开始及结束位置,从而获得网页数据信息。算出网页数据的开始及结束位置,从
36、而获得网页数据信息。1G内存大内存大概能存储概能存储180万条网页信息(每条万条网页信息(每条592字节)。字节)。(2)硬盘文件方式存储,把连续一定数量的网页数据信息,写入到一个硬盘文件方式存储,把连续一定数量的网页数据信息,写入到一个文件中去,比如说文件中去,比如说10万条存储为一个文件,然后把全部硬盘存储的网页万条存储为一个文件,然后把全部硬盘存储的网页数据都存储到硬盘文件系统中去。这样一来,基于硬盘文件存储的网页数据都存储到硬盘文件系统中去。这样一来,基于硬盘文件存储的网页数据在读取时,就要先算出来网页数据存储在那个文件,然后打开文件数据在读取时,就要先算出来网页数据存储在那个文件,然
37、后打开文件读去出来该网页数据信息。硬盘文件方式存储,也是全文检索系统中最读去出来该网页数据信息。硬盘文件方式存储,也是全文检索系统中最主要的存储方式。主要的存储方式。内存存储查询速度快,但信息存储总量有限;硬盘文件方式存储查询速内存存储查询速度快,但信息存储总量有限;硬盘文件方式存储查询速度慢,高并发查询时还容易造成硬件快速损耗,但存储容量巨大。度慢,高并发查询时还容易造成硬件快速损耗,但存储容量巨大。四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:“词库索引数据词库索引数据”的存储采用内存存储方式的存储采用内
38、存存储方式:对于每一篇网页内容,采用存储的分词算法进行处理,分出来的词为对于每一篇网页内容,采用存储的分词算法进行处理,分出来的词为最多的分法,方便对各个相关字词都能建立索引。最多的分法,方便对各个相关字词都能建立索引。所有的网页内容都以按照排序算法从大到小的顺序排列好,所以,每所有的网页内容都以按照排序算法从大到小的顺序排列好,所以,每个字词的网页索引队列也是按照排序算法从大到小的排列。个字词的网页索引队列也是按照排序算法从大到小的排列。词库中所有字词,都是按照词库中所有字词,都是按照Hash分布来排列,便于查询词分词后能分布来排列,便于查询词分词后能够快速找个各个词库中字词对于的网页结果够
39、快速找个各个词库中字词对于的网页结果ID队列。队列。四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:搜索引擎常规存储搜索引擎常规存储/查询步骤如下:查询步骤如下:(1)对搜索词进行分词处理,看能分出来多少个字词;对搜索词进行分词处理,看能分出来多少个字词;举例说明:举例说明:比如说用户的搜索词为比如说用户的搜索词为“屈波搜索引擎屈波搜索引擎”,系统在接到这个查询语句,系统在接到这个查询语句后,对其进行查询词分词处理,分词后为后,对其进行查询词分词处理,分词后为“屈波屈波”+“搜索引擎搜索引擎”。用户查询词用户查
40、询词屈波搜索引擎屈波搜索引擎屈波屈波+搜索引擎搜索引擎查询词分词后查询词分词后四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:搜索引擎常规存储搜索引擎常规存储/查询步骤如下:查询步骤如下:(2)通过通过Hash查找到步骤查找到步骤(1)中各个字词的网页中各个字词的网页ID队列;队列;举例说明:举例说明:系统得到系统得到“屈波屈波”和和“搜索引擎搜索引擎”各自的各自的Hash值,比如说值,比如说Hash值值“屈波屈波”为为256,“搜索引擎搜索引擎”为为1024,然后找到这两个词各自的网,然后找到这两个词各自的网
41、页页ID队列,如下图所示两个队列为队列,如下图所示两个队列为“网页网页ID队列队列2”和和“网页网页ID队列队列4”。屈波屈波256256屈原屈原屈波屈波网页网页ID序列序列1网页网页ID序列序列2搜索引擎搜索引擎10241024搜索搜索搜索引擎搜索引擎网页网页ID序列序列3网页网页ID序列序列4四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:搜索引擎常规存储搜索引擎常规存储/查询步骤如下:查询步骤如下:(3)对步骤对步骤(2)中找到个各个网页中找到个各个网页ID队列做队列做“与与”、“或或”、“非非”的的逻辑
42、运逻辑运 算;算;(4)获得最后的搜索结果网页获得最后的搜索结果网页ID队列。队列。举例说明:举例说明:“屈波屈波”和和“搜索引擎搜索引擎”对应队列为对应队列为“网页网页ID队列队列2”和和“网页网页ID队队列列4”,对这两个队列做,对这两个队列做“与与”运算。运算。屈波屈波网页网页ID序列序列21,3,5,9,11搜索引擎搜索引擎网页网页ID序列序列41,2,5,8,11与运算与运算1,5,11网页网页ID序列序列四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(一一)查询查询/存储技术:存储技术:搜索引擎常规存储搜索引擎常规存储/查询步骤如下:
43、查询步骤如下:(5)完成分页显示处理,计算出最后要显示的各个网页完成分页显示处理,计算出最后要显示的各个网页ID队列队列(互联网互联网搜索网页时一般每页显示搜索网页时一般每页显示10条条,所以所以,这个数目最多为这个数目最多为10),通过这些,通过这些网页网页ID,查找到相关的网页结构体存储内容,显示搜索结果给用户。,查找到相关的网页结构体存储内容,显示搜索结果给用户。举例说明:举例说明:“屈波屈波”和和“搜索引擎搜索引擎”是用户查询词进行分词出来的两个词,在具是用户查询词进行分词出来的两个词,在具体的网页标题和网页内容摘要中,分别对这两个词做红色醒目标记。体的网页标题和网页内容摘要中,分别对
44、这两个词做红色醒目标记。四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(二二)Cache Server:WebServer在接受到搜索请求后,对搜索结果完成查询时分词处理,在接受到搜索请求后,对搜索结果完成查询时分词处理,然后向然后向“索引服务器索引服务器”发出查询请求,发出查询请求,“索引服务器索引服务器”返回结果;返回结果;WebServer对结果进行必要处理,然后向对结果进行必要处理,然后向“网页内容网页内容”服务器通信,服务器通信,获得各个网页内容;最后获得各个网页内容;最后WebServer给用户显示搜索结果。给用户显示搜索结果。Web
45、Server索引服务器索引服务器Index Server网页内容服务器网页内容服务器Page Content Server用户用户四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(二二)Cache Server:在对用户行为进行分析后发现,非常多的查询词经常被用户查询,这在对用户行为进行分析后发现,非常多的查询词经常被用户查询,这些词被称为些词被称为“搜索高频词搜索高频词”。为此,设计出来。为此,设计出来Cache Server(CS)用于存用于存储这些高频词的搜索结果,每当后台系统更新后,这些高频词先进行储这些高频词的搜索结果,每当后台系统更新后
46、,这些高频词先进行查询,然后把查询结果放到查询,然后把查询结果放到CS中,从而减少系统后台压力。中,从而减少系统后台压力。WebServer用户用户 CS索引服务器索引服务器Index Server网页内容服务器网页内容服务器Page Content Server四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(二二)Cache Server:CS还可以部署在还可以部署在“索引服务器索引服务器”、“网页内容服务器网页内容服务器”和和WebServer之间,提高这两个后台服务器的效率。之间,提高这两个后台服务器的效率。WebServer CS CS索
47、引服务器索引服务器Index Server网页内容服务器网页内容服务器Page Content Server四、查询四、查询/存储技术、存储技术、Cache ServerCache Server介绍介绍(二二)Cache Server:CS自我定期更新策略自我定期更新策略:CS在其设计中,重点考虑其拦截率,所以,在其设计中,重点考虑其拦截率,所以,CS的自我定期更的自我定期更新策略就特别重要。新策略就特别重要。CS在其初始化阶段,其存储数据主要来在其初始化阶段,其存储数据主要来源于原来的日志统计结果;在源于原来的日志统计结果;在CS运行后,运行后,CS要实时监控当前要实时监控当前数据流,并定期
48、进行自我更新,把那些没有被访问过或低访数据流,并定期进行自我更新,把那些没有被访问过或低访问率的数据删除,增加新增数据。问率的数据删除,增加新增数据。CS虽然可以提高数据访问时的速度,但如果设计出来的虽然可以提高数据访问时的速度,但如果设计出来的CS命中率过低的话,对整个系统效率还反而带来降低,所以命中率过低的话,对整个系统效率还反而带来降低,所以CS不能滥用,要结合系统实际负荷来设计和部署不能滥用,要结合系统实际负荷来设计和部署CS系统。系统。五、五、内部、外部监控系统介绍内部、外部监控系统介绍(一一)监控系统介绍:监控系统介绍:以数据库为核心存储的系统,所有数据存储任务基本上都由数据库以数
49、据库为核心存储的系统,所有数据存储任务基本上都由数据库来承担,软件系统的稳定性很高,对硬件设备的稳定性要求也高,来承担,软件系统的稳定性很高,对硬件设备的稳定性要求也高,为满足高用户并发量,硬件投入成本惊人。为满足高用户并发量,硬件投入成本惊人。搜索引擎系统的数据存储,都由自己开发的存储技术来存储,并且搜索引擎系统的数据存储,都由自己开发的存储技术来存储,并且很多数据都存储于内存中,存储系统相对硬盘存储为主的数据库系很多数据都存储于内存中,存储系统相对硬盘存储为主的数据库系统而言比较脆弱。正因为如此搜索引擎更多依靠软件设计来提高系统而言比较脆弱。正因为如此搜索引擎更多依靠软件设计来提高系统的稳
50、定性,硬件系统多采用稳定性较差的相对廉价硬件,通过数统的稳定性,硬件系统多采用稳定性较差的相对廉价硬件,通过数量来保证质量,而不是依靠稳定性高价格昂贵的硬件设备。量来保证质量,而不是依靠稳定性高价格昂贵的硬件设备。引入了多重的引入了多重的“内部备份系统内部备份系统”,搜索引擎系统就比传统的其他互,搜索引擎系统就比传统的其他互联网、银行、电信等系统,要庞大和复杂很多,这也带来了监控工联网、银行、电信等系统,要庞大和复杂很多,这也带来了监控工作的巨大困难。作的巨大困难。五、五、内部、外部监控系统介绍内部、外部监控系统介绍(一一)监控系统介绍:监控系统介绍:以以Google为例,它在全球建立了几十个