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

More Related Content

What's hot

搜索技术分享
搜索技术分享搜索技术分享
搜索技术分享endless_yy
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南HonestQiao
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1yiditushe
 
How to study oracle by louis liu
How to study oracle by louis liu How to study oracle by louis liu
How to study oracle by louis liu Louis liu
 
درس كامل عن محركات البحث
درس كامل عن محركات البحثدرس كامل عن محركات البحث
درس كامل عن محركات البحثdalirym
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍taotao1240
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and TutorialHo Kim
 

What's hot (8)

搜索技术分享
搜索技术分享搜索技术分享
搜索技术分享
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1
 
How to study oracle by louis liu
How to study oracle by louis liu How to study oracle by louis liu
How to study oracle by louis liu
 
درس كامل عن محركات البحث
درس كامل عن محركات البحثدرس كامل عن محركات البحث
درس كامل عن محركات البحث
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and Tutorial
 
Xapian介绍
Xapian介绍Xapian介绍
Xapian介绍
 

Similar to 搜索引擎技术介绍

腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍George Ang
 
京东商城Pop商品搜索原理
京东商城Pop商品搜索原理京东商城Pop商品搜索原理
京东商城Pop商品搜索原理changzhongzhong
 
廖若雪 搜索新时代之深层网络检索
廖若雪   搜索新时代之深层网络检索廖若雪   搜索新时代之深层网络检索
廖若雪 搜索新时代之深层网络检索drewz lin
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿yiditushe
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍topgeek
 
第四章
第四章第四章
第四章jxhtq
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobaoterryice
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax LucenceRoger Xia
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫drewz lin
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
軟體弱點掃描
軟體弱點掃描軟體弱點掃描
軟體弱點掃描Rainmaker Ho
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1YI-CHING WU
 
Wad(web application detector)
Wad(web application detector)Wad(web application detector)
Wad(web application detector)lxghost
 
基于 lucene 的站内搜索
基于 lucene 的站内搜索基于 lucene 的站内搜索
基于 lucene 的站内搜索fulin tang
 
Yisou intro
Yisou introYisou intro
Yisou introSong Hou
 

Similar to 搜索引擎技术介绍 (20)

腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
京东商城Pop商品搜索原理
京东商城Pop商品搜索原理京东商城Pop商品搜索原理
京东商城Pop商品搜索原理
 
080926
080926080926
080926
 
廖若雪 搜索新时代之深层网络检索
廖若雪   搜索新时代之深层网络检索廖若雪   搜索新时代之深层网络检索
廖若雪 搜索新时代之深层网络检索
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
第四章
第四章第四章
第四章
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax Lucence
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
軟體弱點掃描
軟體弱點掃描軟體弱點掃描
軟體弱點掃描
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Wad(web application detector)
Wad(web application detector)Wad(web application detector)
Wad(web application detector)
 
基于 lucene 的站内搜索
基于 lucene 的站内搜索基于 lucene 的站内搜索
基于 lucene 的站内搜索
 
Yisou intro
Yisou introYisou intro
Yisou intro
 

搜索引擎技术介绍

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