`

中文搜索引擎技术揭密:系统架构

阅读更多

互联网在近10年的得到飞速发 展,互联网正在逐渐深入人们的生活,改变人们的生活。互联网经济也经历了风风雨雨,从缓慢起步到急速膨胀,从泡沫破灭到逐步回暖;“网络广告”到“拇指经 济”,从“网络游戏”到“搜索力经济”。目前,搜索引擎成为最受人们关注的焦点之一,也成为亿万富翁的制造摇篮。越来越多的 公司都希望在搜索引擎这座金矿中挖到筐金子,其中许多人会选择拥有自己的搜索引擎。国内著名搜索引擎公司百度 (http://www.baidu.com)总裁李彦宏说:搜索引擎不是人人都能做的领域,进入的门槛比较高。

 

搜索引擎的门槛到底有多高?搜索引擎的门槛主要是技术门槛,包括网页数据的快速采 集、海量数据的索引和存储、搜索结果的相关性排序、搜索效率的毫秒级要 求、分布式处理和负载均衡、自然语言的理解技术等等,这些都是搜索引擎的门槛。对于一个复杂的系统来说,各方面的技术固然重要,但整个系统的架构设计也同 样不可忽视,搜索引擎也不例外。

 

搜索引擎技术和分类

 

搜索引擎的技术基础是全文检索技术,从20世纪60年代,国外对全文检索技术就开始 有研究。全文检索通常指文本全文检索,包括信息的存储、组织、表现、查 询、存取等各个方面,其核心为文本信息的索引和检索,一般用于企事业单位。随着互联网信息的发展,搜索引擎在全文检索技术上逐渐发展起来,并得到广泛的应 用,但搜索引擎还是不同于全文检索。搜索引擎和常规意义上的全文检索主要区别有以下几点:

 

1.数据量 传统全文检索系统面向的是企业本身的数据或者和企业相关的数据,一般索引库规模多在GB级,数据量大的也只有几百万条;但互联网网页搜索需要处理几十亿的网页,搜索引擎的策略都是采用服务器群集和分布式计算技术。

 

2.内容相关性 , 信息太多,查准和排序就特别重要,Google等搜索引擎采用网页链接分析技术,根据互联网上网页被链接次数作为重要性评判的依据;但全文检索的数据源中相互链接的程度并不高,不能作为判别重要性的依据,只能基于内容的相关性排序。

 

3.安全性. 互联网搜索引擎的数据来源都是互联网上公开的信息,而且除了文本正文以外,其它信息都不太重要;但企业全文检索的数据源都是企业内部的信息,有等级、权限 等限制,对查询方式也有更严格的要求,因此其数据一般会安全和集中地存放在数据仓库中以保证数据安全和管理的要求。

 

4.个性化和智能化. 搜索引擎面向的是互联网访问者,由于其数据量和客户数量的限制,自然语言处理技术、知识检索、知识挖掘等计算密集的智能计算技术很难应用,这也是目前搜索 引擎技术努力的方向;而全文检索数据量小,检索需求明确,客户量少,在智能化和个性可走得更远。

 

搜索引擎与全文检索除了以上的区别外,还结合互联网信息的特点形成了三个不同的类型:

 

 

•全文检索搜索引擎 :全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google (http://www.google.com) 、yahoo(http://search.yahoo.com) 、AllTheWeb (http://www.alltheweb.com ) 等,国内著名的有百度(http://www.Baidu.com)、中搜(http://www.zhongsou.com)。它们都是通过从互联网上 提取的各个网站的信息(以网页文字为主)而建立的数据库,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,也是目前常规意义上 的搜索引擎。

 

•目录搜索引擎 :目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词查询,仅靠分类目录 也可找到需要的信息。国外比较著名的目录索引搜索引擎有yahoo(http://www.yahoo.com)Open Directory Project(DMOZ)(http://www.dmoz.com/)、LookSmart(http://www.looksmart.com) 等。国内的搜狐(http://www.sohu.com)、新浪(http://www.sina.com)、网易(http: //www.163.com)搜索也都具有这一类功能。

 

•元搜索引擎 :元搜索引擎在接受用户查询请求时,同时在其它多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有 Dogpile(http://www.dogpile.com)、Vivisimo(http://www.vivisimo.com)等,国内元搜索 引擎中具代表性的有搜星搜索引擎(http://www.soseen.com/),优客搜索(http://www.yok.com)。在搜索结果排列 方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。

 

•其他的像新浪(http://search.sina.com.cn) 、网易(http://search.163.com)、 A9(http://www.A9.com) 等搜索引擎都是调用其它全文检索搜索引擎,或者在其搜索结果的基础上做了二次开发。

 

搜索引擎的系统架构

 

这里主要针对全文检索搜索引擎的系统架构进行说明,下文中提到的搜索引擎如果没有特殊说明也是指全文检索搜索引擎。搜索引擎的实现原理,可以看作四步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索→对搜索结果进行处理和排序。

 

1.从互联网上抓取网页. 利用能够从互联网上自动收集网页的网络蜘蛛程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集到服务器中。

 

2.建立索引数据库 . 由索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它 网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信 息建立网页索引数据库。

 

3.在索引数据库中搜索 . 当用户输入关键词搜索后,分解搜索请求,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。

 

4.对搜索结果进行处理排序 . 所有相关网页针对该关键词的相关信息在索引库中都有记录,只需综合相关信息和网页级别形成相关度数值,然后进行排序,相关度越高,排名越靠前。最后由页面 生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。 下图是一个典型的搜索引擎系统架构图,搜索引擎的各部分都会相互交错相互依赖。其处理流程按照如下描述:

 

 

“网络蜘蛛”从互联网上抓取网页,把网页送入“网页数据库”,从网页中“提取 URL”,把URL送入“URL数据库”,“蜘蛛控制”得到网页的URL,控制“网络蜘蛛”抓取其它网页,反复循环直到把所有的网页抓取完成。 系统从“网页数据库”中得到文本信息,送入“文本索引”模块建立索引,形成“索引数据库”。同时进行“链接信息提取”,把链接信息(包括锚文本、链接本身 等信息)送入“链接数据库”,为“网页评级”提供依据。 “用户”通过提交查询请求给“查询服务器”,服务器在“索引数据库”中进行相关网页的查找,同时“网页评级”把查询请求和链接信息结合起来对搜索结果进行 相关度的评价,通过“查询服务器”按照相关度进行排序,并提取关键词的内容摘要,组织最后的页面返回给“用户”。

搜索引擎的索引和搜索

 

数据的索引分为三个步骤:网页内容的提取、词的识别、标引库的建立。

 

互联网上大部分信息都是以HTML格式存在,对于索引来说,只处理文本信息。因此需 要把网页中文本内容提取出来,过滤掉一些脚本标示符和一些无用的广告信 息,同时记录文本的版面格式信息[1]。词的识别是搜索引擎中非常关键的一部分,通过字典文件对网页内的词进行识别。对于西文信息来说,需要识别词的不同 形式,例如:单复数、过去式、组合词、词根等,对于一些亚洲语言(中文、日文、韩文等)需要进行分词处理[3]。识别出网页中的每个词,并分配唯一的 wordID号,用于为数据索引中的标引模块服务。

 

标引库的建立是数据索引中结构最复杂的一部分。一般需要建立两种标引:文档标引和关 键词标引。 文档标引分配每个网页一个唯一的docID号,根据docID标引出在这个网页中出现过多少过wordID,每个wordID出现的次数、位置、大小写格 式等,形成docID对应wordID的数据列表;关键词标引其实是对文档标引的逆标引,根据wordID标引出这个词出现在那些网页(用wordID表 示),出现在每个网页的次数、位置、大小写格式等,形成wordID对应docID的列表。

 

搜索的处理过程是对用户的搜索请求进行满足的过程,通过用户输入搜索关键字,搜索服 务器对应关键词字典,把搜索关键词转化为wordID,然后在标引库中 得到docID列表,对docID列表进行扫描和wordID的匹配,提取满足条件的网页,然后计算网页和关键词的相关度,根据相关度的数值返回前K篇结 果(不同的搜索引擎每页的搜索结果数不同)返回给用户。如果用户查看的第二页或者第多少页,重新进行搜索,把排序结果中在第K+1到2*K的网页组织返回 给用户。其处理流程如下图所示:

 

 

搜索引擎细化趋势

 

随着搜索引擎市场空间越来越大,搜索引擎也分得越来越细。互联网没有国界,百度总裁 李彦宏所讲:搜索引擎市场是赢家通吃的市场。如果一个搜索引擎要想在搜 索市场上有自己的一席之地,必须拥有自己的特色。而且,数以亿计的网民,搜索需求不可能都一样,不同类型的用户需要不同类型的搜索引擎,网页搜索只是搜索 需求中的一种,这就决定了搜索引擎会不断细化,各具特色的搜索引擎也陆续出现。

 

从技术上讲,各种搜索引擎都具有类似的系统架构,其不同在于搜索的数据源的不同。除了上面提到的网页搜索引擎以外,下面列举几个典型的搜索引擎:

 

•新闻搜索引擎 . 看新闻是许多网民上网的主要目的,新闻搜索也就成了查看新闻的重要工具。新闻搜索引擎实现的过程比较简单,一般是扫描国内外有名的新闻网站,抓取新闻网 页,建立自己的新闻数据库,然后提供搜索,只是对新闻网页抓取的频率要求很高,有的需要做到几分钟扫描一次。现在许多大型的网页搜索引擎都提供相应的新闻 搜索功能,如:Google新闻搜索(http://news.google.com),中搜新闻搜索(http: //news.zhongsou.com),百度新闻搜索(http://news.baidu.com)等。

 

•音乐搜索引擎 . 有了互联网以后,音乐得到了广泛的传播,对于喜欢音乐的网民来说,音乐搜索引擎成了最钟爱的工具。音乐搜索引擎需要监控互联网上大型的音乐网站,抓取其音 乐数据的描述信息,形成自己的数据库,音乐的下载和试听都会在其原来的音乐网站上进行。目前有:搜刮网(http://www.sougua.com), 百度mp3搜索(http://mp3.baidu.com),1234567搜索(http://www.1234567.com)等。

 

•图像搜索引擎 . 通过图像搜索引擎可以找到自己感兴趣的图片链接,各大搜索引擎也提供了图像搜索功能。图像文件本身不能够被搜索引擎索引,但搜索引擎可以通过链接文本分析 和图片注解等得到图片的信息。目前有:Google图像搜索(http://images.google.com/),VisionNext搜索 (http://www.eefind.com),百度图像搜索(http://images.baidu.com)等。

 

•商机搜索引擎 . 电子商务一直是互联网的热点,商机搜索对电子商务的发展也起到了巨大的推动作用,商机搜索让互联网经济和传统经营紧密结合在一起,给传统的企业提供了一个 新的销售模式。商机搜索引擎,通过抓取电子商务网站的商品信息和其他商业信息,给访问者提供统一的搜索平台。目前有:soaso价格搜索引擎 (http://www.soaso.com),8848购物搜索(http://www.8848.com),阿里巴巴商机搜索(http: //www.alibaba.com)等。

分享到:
评论

相关推荐

    中文搜索引擎技术揭密:系统架构解决方案.pdf

    中文搜索引擎技术揭密,主要探讨的是在互联网时代搜索引擎在系统架构层面如何解决大规模信息检索问题。搜索引擎作为互联网的重要组成部分,其技术复杂性在于处理海量数据的高效采集、存储、索引以及相关性排序,同时...

    中文搜索引擎技术揭密:网络蜘蛛.rar

    《中文搜索引擎技术揭密:网络蜘蛛》 搜索引擎技术是互联网信息获取的重要手段,而网络蜘蛛(也称为网页爬虫)则是搜索引擎技术的核心组成部分。本文将深入探讨网络蜘蛛的工作原理、技术实现以及在中文搜索引擎中的...

    中文搜索引擎技术揭密

    中文搜索引擎技术揭密 中文搜索引擎技术是信息技术领域中不可或缺的一部分,尤其在中国,由于中文独特的语言特性,中文搜索引擎的研发显得尤为重要。不同于英文等以空格分隔的语种,中文是以字为基本单位,词语组合...

    搜索引擎技术揭密之搜索蜘蛛系列文摘

    首先,中文搜索引擎技术揭密之搜索蜘蛛.pdf可能会深入探讨中文网页的抓取和处理。中文处理相对复杂,涉及到汉字编码、分词、消歧等问题。搜索引擎需要能够理解和解析中文内容,以便正确索引和匹配用户的查询。例如,...

    爬虫搜索,简单的搜索引擎,java爬虫,搜索引擎例子,爬虫demo,java实现互联网内容抓取,搜索引擎大揭密

    这个"搜索引擎大揭密"的项目不仅展示了爬虫的基本工作原理,还揭示了如何使用Java技术构建一个简易的搜索系统,这对于学习和理解相关技术具有重要意义。在实际应用中,还需要考虑更多因素,如反爬策略、性能优化、...

    .net网络蜘蛛源程序及搜索引擎技术揭密

    《.NET网络蜘蛛源程序及搜索引擎技术揭密》是一份深度探讨C#和.NET框架下搜索引擎开发的重要资源。本文将详细解析其中的核心知识点,旨在帮助读者深入理解并掌握搜索引擎技术。 首先,我们要明白网络蜘蛛(Web ...

    解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt

    通过这本书的学习,读者不仅可以掌握Lucene的使用,还能对搜索引擎技术有深入的理解,有助于开发自己的搜索引擎应用或者增强现有系统的搜索功能。无论你是Java开发者还是对搜索引擎感兴趣的IT从业者,这都是一个非常...

    什么是搜索引擎?搜索引擎技术与原理详解

    搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索...

    搜索引擎技术核心揭密(PHP).docx

    【搜索引擎技术核心揭密(PHP)】 搜索引擎技术是互联网信息检索的核心,PHP作为一种广泛使用的服务器端脚本语言,可用于构建搜索引擎的后台系统。本篇主要探讨如何利用PHP与Google搜索引擎进行交互,实现定制化的...

Global site tag (gtag.js) - Google Analytics