一种大规模数据搜索系统技术方案

技术编号:6604114 阅读:251 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种大规模数据搜索系统,主要包括倒排文件模块、数据接口模块、查询模块、切词模块及记分函数模块以及进程守护模块,倒排文件模块用于搜索系统能够快速找到查询词对应的文档列表;数据接口模块封装了每个要公开的数据的访问方法;查询模块用于利用输入端查询条件进行搜索,将各个关键词对应文档列表求交集;切词模块用于切词并得到各个关键词并形成一棵查询树;记分函数模块负责进行站点聚类,得到聚类好的查询结果;守护进程模块用于接受查询请求并根据查询请求中指定的最大返回结果数。利用该系统,能够减少访问磁盘的开销;并通过一些有效的预处理,减少浮点运算的次数,进一步提高检索效率。

【技术实现步骤摘要】

本专利技术涉及搜索引擎技术,尤其涉及一种大规模数据搜索系统
技术介绍
众所周知,搜索引擎是用于从互联网上搜寻信息的重要工具。随着互联网规模的不断扩大和网上信息量的不断增长,搜索引擎的作用也就越来越重要。当前,互联网上的搜索引擎虽然大小不同,功能也各异,但它们都包含以下一些基本的功能模块网页收集模块、页面预处理模块、索引模块、页面检索模块等。其中,可利用上述搜索引擎的索引模块生成倒排文件,被检索模块所使用。这里,所述倒排文件是从关键词到其出现位置(occurrence)的一种索引。对于搜索引擎来说,关键词的出现位置信息必须包括出现关键词的文档列表,以及关键词在各文档内的位置列表。一般而言,倒排文件由索引文件和记录文件组成,索引文件每个记录包含一个关键词和一个指针,该指针指向记录文件中存放关键词信息的位置。其大致结构如图 1所示,利用倒排文件,检索系统可以快速的找到查询词对应的文档列表。对由多个关键词所组成的查询,还可以根据各个词在各个文档中出现的位置,来计算查询与文档的相关度。 倒排索引是迄今为止发现的用于搜索引擎最好的索引结构,既方便建立,又很好的支持各种查询操作。在实际应用中的倒排文件远比上图的复杂为了更好的计算相关度,倒排文件中还要加入其它的一些信息,例如关键词在文档中的属性信息;为了提高检索效率,可能要调整倒排文件的结构,例如先存放出现关键词的所有文档列表,再存放所有的位置信息,把上图中位置信息的形式<docl><poslpos2pos3. . . Xdoc2Xposl‘ pos2' pos3' . . . Xdoc3><posl,,pos2,,po s3”· ·.>变换为<docldoc2doc3. . . Xposlpos2pos3. . . posl' pos2' pos3' . . . posl,,pos2,,po s3”· ·.>通过这种变换,当我们不关心词在文档中位置列表的时候,就可以一次地读入词对应的文档列表,减少对外存的访问次数。在后面我们还将详细讨论倒排文件的设计,我们会发现倒排文件结构的好坏直接影响检索速度。现代搜索引擎搜索的网页都数量巨大,目前的北大天网(e. pku. edu. cn/)搜索引擎搜索的网页量就有1.2亿,而一般的商业搜索引擎搜索的网页量至少都有数亿,甚至是达到数十亿。在这种情况下,一个单机的检索系统显然无法处理每秒成百上千的用户查询请求。此时,设计出一个结构良好的分布式检索系统显得尤为重要。一般成言,分布式检索系统至少包括两个部分一台或多台用于接收入用户查询请求的前台服务器,和多个用于实际数据检索的后台服务器,其结构如图2所示。当用户在搜索框中填入一个查询项,点击搜索按钮,其查询请求就被随机的发送到任意一台前台服务器上。而前台服务器实际上并不保存网页的索引信息,它将用户的查询通过广播的方式发送到后台的检索机群上。后台检索机群中,每台机器中都存放有部分网页的倒排索引,当它收入到广播过来的查询,便在其索引中查找出与查询其关的网页,并根据一定的相关度算法计算出得分,把相关度最高的若干个网页的文档号与得分一起发送回前台的服务器。前台服务器收集几个检索机器上的结果,按得分归并后把最相关的网页返回给用户。由于时间的关系本文必没有详细的研究检索系统的分布式结构,而是更多的关注各个检索节点上的效率。可以说,这两方面共同决定了一个检索系统的性能。但是,现在的大型搜索系统,仍然存在一些问题需要我们去改善,主要体现在如下几个方面一、检索效率不高。每个检索节点检索的网页量大约在二百多万,每秒只能处理十几个的查询请求。主要原因是没有为倒排文件建立cache,每次查询都要多次访问外存,磁盘成了系统的瓶颈。此外,其分布式结构也不太好,前台服务器与检索节之间基于同步的多进程的交互方式,也影响和整个系统的效率。二、倒排文件信息量不够。现在的倒排文件中,关键词在文档中的属性信息很少, 只用两个bit分别表示词是否在网页title和摘要中,并且不能为关键词在文档中各个位置设立属性信息。由于信息量的缺乏,在计算词与文档相关性的时候,往往不够准确。三、系统的可扩展性和容错性不足。系统现在运行在由一台前台服务器,19个检索节点构成的分布式环境中。对于增加检索节点可能带来的广播风爆,以及增加前台服务器查询策略的变化,都没有考虑到。此外,数据没有冗余,当系统中部分机器出现故障,则会影响查询结果。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种大规模数据搜索系统,通过改进倒排文件结构、改进整数的压缩算法,并增加倒排文件的信息量;能够通过有效的cache策略, 让索引尽量的在内存中可以找到,减少访问磁盘的开销;并通过一些有效的预处理,减少浮点运算的次数,也进一步的提高检索效率。对于相关度计算,本文也做了一些改进,使得在最后的结果排序上更符合用户需求。为达到上述目的,本专利技术的技术方案是这样实现的一种大规模数据搜索系统,其主要包括倒排文件模块、数据接口模块、查询模块、 切词模块及记分函数模块以及进程守护模块,其中所述倒排文件模块,用于搜索系统能够快速找到查询词对应的文档列表;所述数据接口模块,是一组接口类,封装了每个要公开的数据的访问方法;所述查询模块,用于利用输入端查询条件进行搜索,将各个关键词对应文档列表求交集;所述切词模块,用于切词并得到各个关键词并形成一棵查询树;所述记分函数模块,负责进行站点聚类,得到聚类好的查询结果,排列并返回给守护进程模块;以及,所述守护进程模块,用于接受查询请求,并根据查询请求中指定的最大返回结果数,将部分结果返回。其中,所述倒排文件模块,采用新的倒排文件格式,其包含描述文件、索引文件和记录文件,支持程序的快速访问。所述倒排文件模块的描述文件,包括倒排文件自身的属性信息,包括Byte-Order属性表示倒排文件中使用整数的字节序,包含压缩整数和非压缩整数;Align-Bits属性使用了 32位的偏移量,Align-bits属性表示移动的位数;Attr-Size属性在这个格式中,允许关键词在每个出现它的文档中,有0个或多个字节的属性信息;这个属性信息的意义在本格式中无定义,完全由应用程序决定; 该属性信息必须是整字节的,并且所有的属性信息必须等长;这个长度就是倒排文件的 Attr-size 属性;Uint-Encoding属性压缩整数的编码方式。本专利技术所提供的大规模数据搜索系统,具有以下优点通过定义新的倒排文件格式,其支持程序的快速访问。改进了整数压缩算法,使得倒排文件的规模变小,从而也就减少了检索时从磁盘读取的数据量。通过使用文档列表cache,减少对磁盘的访问次数。通过预先计算相关度,完全消除了检索过程中的浮点运算,节省了 CPU计算时间,但代价是增大了倒排文件规模。充分的利用关键词在文档中的属性信息,减少不必要的相对位置计算,既节省了 CPU时间,又减少了一些磁盘10。从而改进了站点聚类算法,降低了时间复杂度。附图说明图1为现有倒排文件结构示意图;图2为现有检索系统的分布式结构示意图;图3为本专利技术的大规模数据搜索系统的整体结构及数据流示意图;图4为记录文件和索引文件的示意图;图5为关键词列表示意图;图6为文档列本文档来自技高网
...

【技术保护点】
1.一种大规模数据搜索系统,其特征在于,其主要包括倒排文件模块、数据接口模块、查询模块、切词模块及记分函数模块以及进程守护模块,其中:所述倒排文件模块,用于搜索系统能够快速找到查询词对应的文档列表;所述数据接口模块,是一组接口类,封装了每个要公开的数据的访问方法;所述查询模块,用于利用输入端查询条件进行搜索,将各个关键词对应文档列表求交集;所述切词模块,用于切词并得到各个关键词并形成一棵查询树;所述记分函数模块,负责进行站点聚类,得到聚类好的查询结果,排列并返回给守护进程模块;以及,所述守护进程模块,用于接受查询请求,并根据查询请求中指定的最大返回结果数,将部分结果返回。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘奎飞张杰
申请(专利权)人:悠易互通北京广告有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1