在数字图书馆中所采用的检索系统和检索方法

文档序号:7959400阅读:549来源:国知局
专利名称:在数字图书馆中所采用的检索系统和检索方法
技术领域
本发明涉及信息检索领域,更具体地,涉及一种在数字图书馆中所采用的检索系统和检索方法,能够高效地进行检索且易于扩展,并且能应用于具有海量数据和大规模并发访问的数字图书馆。
背景技术
当前,有很多技术可用于构建数字图书馆。一般的数字图书馆采用数据库方法,该方法能够方便快捷地构建数据规模比较小的图书馆系统。但是当数据规模增长到TB级时,其索引规模十分庞大,检索速度低,无法满足当前信息爆炸式增长的要求。另一方面,当用户并发查询请求量增长时,这些技术无法灵活扩展,难以适应不断增长的用户需求。
当前,还存在被一些著名的商业搜索引擎所采用的信息检索技术。这些技术通常采用采集器从互联网(INTERNET)上自动抓取网页,且采用索引技术为网页进行索引。在这些技术中,典型地使用倒排表(Inverted List),并基于网页特点进行排序且返回检索结果,为用户提供秒级的检索服务。
然而,图书检索有其自身的特点与自动抓取的Web数据不同,图书馆的数据为经过加工的质量较高的结构化数据,其数据内容更为丰富;另外,Web检索只是针对网页平面内容进行检索,而图书检索系统需要更深层次的字段级检索;此外,Web检索更为注重前几十个检索结果的准确性,而图书检索要求查全、查准,且要求长期有效的检索。
目前的商业搜索引擎没有充分考虑到数字图书馆服务的这些特点,而且对于硬件资源的要求很高,这对于目前作为公共服务的图书馆来说,是难以做到的。
随着近年来图书馆的发展和馆藏数字化资源的不断丰富,数字图书馆已经拥有大量的数字资源,并需要通过互联网对外提供服务。这就对数字图书馆建设提出了一个挑战如何面临海量元数据和服务于全世界需求者来构造一个检索系统。因此,人们迫切需要一种高效率、可扩展的数字图书馆构建方法,该方法必须满足图书检索查全、查准的要求,且能够随着数据增长、用户并发查询的增长而进行扩展,并且能处理多语种数据源。

发明内容
因此,本发明的目的是提出一种在数字图书馆中所采用的检索系统和检索方法,能够高效地进行检索且易于扩展,并且能应用于具有海量数据和大规模并发访问的数字图书馆。
为了实现以上目的,本发明提出了一种在数字图书馆中所采用的检索系统,包括包含一个或多个检索控制器的检索控制器层,用于将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;包含一个或多个检索服务器的检索服务器层,用于存储数字图书馆的核心索引数据,并针对所述用户查询首先在所述核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及包含一个或多个索引服务器的索引服务器层,用于存储数字图书馆的所有索引数据,以便通过检索服务器层的访问从所述所有索引数据中检索出相应的索引以获取检索结果。
优选地,所述检索系统还包括分发服务器层,用于对来自用户的用户查询进行负载均衡处理。
优选地,所述负载均衡处理采用基于IP层的负载分发、基于传输层的负载分发、基于应用层的负载分发来实现。
优选地,所述基于IP层的负载分发包括基于IP层的Round-Robin方式。
优选地,由所述检索控制器层对来自检索服务器层的相应检索结果进行处理通过对所述相应检索结果进行合并并生成摘要来实现。
优选地,所述检索控制器层对检索结果用XML格式进行组织。
优选地,所述检索服务器层中的检索服务器按照对应于不同的图书数据库分别建立相应的核心索引的方式来形成相应的检索服务器组,并且所述索引服务器层中的索引服务器按照对应于不同的图书数据库分别保存相应的索引的方式来形成相应的索引服务器组。
优选地,所述核心索引按照索引的倒排链长度处于两个阈值之间的方式来建立。
优选地,所述核心索引根据索引的历史出现频度来建立。
优选地,所述核心索引根据与用户访问行为特征相对应的核心词汇来建立。
优选地,当用户并发查询请求增长时,检索控制器和检索服务器组的数目以线性的方式增加。
优选地,当数字图书馆的数据规模增加时,检索控制器和索引服务器的数目以线性的方式增加。
为了实现上述目的,根据本发明,还提出了一种在数字图书馆中所采用的检索方法,包括由检索控制器层将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;由检索服务器层针对所述用户查询,首先在所存储的数字图书馆核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及响应来自检索服务器层的访问,由索引服务器层从所存储的数字图书馆的所有索引数据中检索出相应的索引以获取检索结果。


通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中图1是示出了根据本发明的实施例,在数字图书馆中所采用的检索系统的示意配置图;以及图2示出了对图1所示的检索系统的测试平台架构的示意图。
具体实施例方式
下面将参考附图来说明本发明的优选实施例。
图1是示出了根据本发明的实施例,在数字图书馆中所采用的检索系统的示意配置图。该检索系统采用了基于集群(cluster)的体系架构。
如图1所示,根据本发明实施例的在数字图书馆中所采用的检索系统包括分发服务器层1,其采用Round-Robin方式进行负载均衡;检索控制器层2,其中包括作为检索控制器的Web服务器,该Web服务器采用Apache服务器,并将原始数据文档以XML格式来进行存储,且采用归并算法对来自检索服务器的检索结果进行合并,生成摘要返回给用户;检索服务器层3,对用户查询进行检索并将检索结果返回给检索控制器层2;以及索引服务器层4,存放所有数据索引,以便为检索服务器层3服务。下面分别详细描述各层次的配置。
1)分发服务器层1首先,描述分发服务器层1中的分发服务器如何进行负载均衡,即,如何实现分发服务器层1的负载分发功能。
目前,负载分发主要有3种类型基于IP层的负载分发、基于第四层(传输层)的负载分发、基于第7层(应用层)的负载分发,并且,针对各种类型的负载分发存在相应的硬件交换机。作为示例,在本发明中,可以采用基于IP层的Round-Robin方式进行负载均衡。
2)检索控制器层2下面描述检索控制器层2中的检索控制器如何分发用户查询给检索服务器,如何进行归并排序、生成摘要并返回给用户,即实现检索控制器层2的检索控制功能。
通常,作为检索控制器的Web服务器采用Apache服务器,并同时加载FastCgi模块。
在该Web服务器中,对对应于检索结果的图书数据用XML格式进行组织。作为示例,其格式如下<METADATA>
<ID>00001<ID>
<TITLE>现代信息检索</TITLE>
<AUTHOR>Ricardo Baeza-Yates,etc</AUTHOR>
<PUBLISHER>机械工业出版社</PUBLISHER>
…</METADATA>
同时,该Web服务器中采用如下算法为用户进行服务该Web服务器从分发服务器器获取用户查询Query_A;然后将所获取的用户查询Query_A转发给相应的检索服务器。在检索服务器完成检索之后,从相应组内的检索服务器中获取检索结果,例如,得到了相应组内的3个检索服务器的检索结果检索服务器A向其返回Ra,检索服务器B向其返回Rb,检索服务器C向其返回Rc。然后,检索控制器对检索结果Ra、Rb、Rc进行归并排序以得到合并结果R。
根据合并结果R获取检索结果并生成摘要,将所生成的摘要返回给用户。
3)检索服务器层3再次,描述检索服务器层3中的检索服务器如何根据本地的核心索引进行检索,即实现检索服务器层3的检索功能。
由于面对的是海量数据,将所有数据的索引全部放在检索服务器上不是现实的。因此,在本发明中,引入了“检索服务器组”的概念。也就是,将索引分布在不同的机器上,所有这些机器组成了一个检索服务器组。根据本发明的数字图书馆中所采用的检索系统对用户提供的服务是分库检索的,数据也是分库组织的,因此,可以采用局部分布的方式,即,对应于不同的图书数据库,分别建立相应的索引,然后,由不同的检索服务器组为用户服务。
但是,如果将所有数据的索引都放在检索服务器组上,当用户并发查询请求数增长时,那么需要的机器数目将是非常庞大的。
为了解决该问题,在本发明中,引入了“核心索引”概念。对所有数据的索引设定两个阈值LOW_INDEX_LIST和HIGH_INDEX_LIST。然后,将索引的倒排链长度INVERTED_LIST_LENGTH满足LOW_INDEX_LIST<=INVERTED_LIST_LENGTH<=HIGH_INDEX_LIST的所有倒排链组成的索引称为“核心索引”。两个阈值LOW_INDEX_LIST和HIGH_INDEX_LIST可以根据实践来进行调整。通常,“核心索引”大小约占所有数据的索引的30%。
核心索引的建立可以采用多种依据,例如,该核心索引的建立可以根据索引的历史出现频度来实现,或者可以根据与用户访问行为特征相对应的核心词汇来实现。
当接收到来自检索控制器层2的用户查询时,所述检索服务器层3针对所述用户查询,首先在所述核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层4以获取检索结果,并将所获得的检索结果提供给检索控制器层2。
4)索引服务器层4最后,将描述索引服务器层4中的索引服务器的配置,即实现索引服务器层4的海量索引数据存储功能。
数字图书馆所涉及的索引数据可以是海量数据。由于所有索引数据的数据量十分庞大,将所有索引数据放在单台机器上也是不现实的。通常,如以上所提到的,数字图书馆对数据进行处理时是按照图书分类学把图书数据分成多个库为用户提供服务的。因此,在本发明中,采用了局部分布的方式。也就是,对应于不同的图书数据库,分别建立索引,加载分布在不同的索引服务器组上,所有的索引服务器组构成检索服务器层。
在此基础上,所述索引服务器层4可以响应检索服务器层3的访问从所述所有索引数据中检索出相应的索引以获取检索结果,并将检索结果返回给检索服务器层3。
另外,需要注意的是,为了处理多语种,在本发明的检索过程中采用了UNICODE编码。
下面将参考图2来描述对图1所示的检索系统的测试平台架构的示意图。更进一步,将说明基于图1描述的体系架构,如何从数据规模小且用户并发查询请求数少的架构到数据规模大且用户并发查询请求数大的架构推演方案,即图1所示的检索系统的扩展问题。
如图2所示,对图1所示的检索系统的测试平台架构包括4个CPU2G、内存为8G的节点机、16个CPU2G、内存为4G的刀片机构成的集群平台上测试。操作系统均为Redhat Linux 9.0(内核版本2.4.26#SMP)。在图2中的具体配置表现为多个模拟客户端、千兆以太网、Web服务器接入设备、以及检索服务器机群。
在该测试中的用户实验的数据可以包括(1)中文目次数据;(2)西文目次数据;(3)EBSCO数据;(4)CNMARC数据;(5)USMARC数据。所涉及的元数据总量为2300多万条,容量为13.6G。
各个负载的分布为各个库、字段(题名、摘要、出版社、作者)均匀分布,包含有单个检索词、2个检索词、3个检索词“与”的查询约各占23%;两个检索词“或”约占11%;4个检索词“与”约占10%;5个检索词“与”约占5%;两个检索词“非”占5%。检索结果返回前500个结果(文档ID和权值)。
根据该测试可以得到如果在单节点上加载索引大小为2G(约2300万条元数据)的核心索引,则检索速度为283.3应答/秒(replies/second),检索控制器CPU平均占用率约为27%;检索控制器加载2个检索服务器时,CPU平均占用率约为51%,检索速度为555.5应答/秒;加载1个检索服务器CPU平均占用率约为90%,检索速度为740.8应答/秒。特别指出的是,分发服务器的性能不是瓶颈,通常1到2台就可以满足较大的并发请求数目,在推演中我们设置为2台。
当数据规模增大时,对新增的数据建立索引,加载到新的检索服务器上,同时把新的检索服务器加到各个组中,具体来说,每一组检索服务器节点的数目是由索引的总大小p和每一个节点的可用内存大小q决定的,即,所需检索服务器节点数目=p/q。
当用户规模增大时,将部署更多组同构的检索服务器,各组检索服务器加载相同的数据索引,同时由负载均衡器转发用户请求给相应的检索服务器组。
在此数据条件下进行推演得到2亿条记录和10000次并发请求的基于当前测试系统需要的硬件配置方案2亿条记录的索引大小约为20G,索引服务器需要2台16G内存的节点;核心索引的大小约为20×30%=6G;检索控制器个数10000/740.8=13.49 14个;检索服务器组数10000/283.3=35.30 36组;每组检索服务器的节点个数6GB/2GB=3个;负载分发器2台;因此,总的节点个数为14+38×3+2+2=132台。
如上所述,根据本发明,构建了面向具有海量数据、大规模用户并发查询请求的数字图书馆系统的检索系统。本发明采用了四层体系框架。在实现上,本发明充分考虑到图书馆应用的特点,分库建立索引。当用户并发查询请求增长时,通过增加相应的检索控制器和检索服务器组,以近似线性的方式增加;当数字图书馆的数据规模增加时,也以近似线性的方式增加各个检索控制器组内的检索控制器和索引服务器。另外,由于采用了UINCODE编码,所以该检索系统和检索方法独立于语种。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
权利要求
1.一种在数字图书馆中所采用的检索系统,包括包含一个或多个检索控制器的检索控制器层,用于将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;包含一个或多个检索服务器的检索服务器层,用于存储数字图书馆的核心索引数据,并针对所述用户查询首先在所述核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及包含一个或多个索引服务器的索引服务器层,用于存储数字图书馆的所有索引数据,以便响应检索服务器层的访问从所述所有索引数据中检索出相应的索引以获取检索结果。
2.根据权利要求1所述的系统,其特征在于还包括分发服务器层,用于对来自用户的用户查询进行负载均衡处理。
3.根据权利要求1所述的系统,其特征在于所述负载均衡处理采用基于IP层的负载分发、基于传输层的负载分发、基于应用层的负载分发来实现。
4.根据权利要求3所述的系统,其特征在于所述基于IP层的负载分发包括基于IP层的Round-Robin方式。
5.根据权利要求1所述的系统,其特征在于由所述检索控制器层对来自检索服务器层的相应检索结果进行处理通过对所述相应检索结果进行合并并生成摘要来实现。
6.根据权利要求5所述的系统,其特征在于所述检索控制器层对检索结果用XML格式进行组织。
7.根据权利要求1所述的系统,其特征在于所述检索服务器层中的检索服务器按照对应于不同的图书数据库分别建立相应的核心索引的方式来形成相应的检索服务器组,并且所述索引服务器层中的索引服务器按照对应于不同的图书数据库分别保存相应的索引的方式来形成相应的索引服务器组。
8.根据权利要求1所述的系统,其特征在于所述核心索引按照索引的倒排链长度处于两个阈值之间的方式来建立。
9.根据权利要求1所述的系统,其特征在于所述核心索引根据索引的历史出现频度来建立。
10.根据权利要求1所述的系统,其特征在于所述核心索引根据与用户访问行为特征相对应的核心词汇来建立。
11.根据权利要求7所述的系统,其特征在于当用户并发查询请求增长时,检索控制器和检索服务器组的数目以线性的方式增加。
12.根据权利要求7所述的系统,其特征在于当数字图书馆的数据规模增加时,检索控制器和索引服务器的数目以线性的方式增加。
13.一种在数字图书馆中所采用的检索方法,包括由检索控制器层将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;由检索服务器层针对所述用户查询,首先在所存储的数字图书馆核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及响应来自检索服务器层的访问,由索引服务器层从所存储的数字图书馆的所有索引数据中检索出相应的索引以获取检索结果。
14.根据权利要求13所述的方法,其特征在于还包括由分发服务器层对来自用户的用户查询进行负载均衡处理。
15.根据权利要求13所述的方法,其特征在于所述负载均衡处理采用基于IP层的负载分发、基于传输层的负载分发、基于应用层的负载分发来实现。
16.根据权利要求15所述的方法,其特征在于所述基于IP层的负载分发包括基于IP层的Round-Robin方式。
17.根据权利要求13所述的方法,其特征在于由所述检索控制器层对来自检索服务器层的相应检索结果进行处理的步骤包括对来自检索服务器层的相应检索结果进行合并并生成摘要。
18.根据权利要求17所述的方法,其特征在于所述检索控制器层对检索结果用XML格式进行组织。
19.根据权利要求13所述的方法,其特征在于所述检索服务器层包含一个或多个检索服务器,所述检索服务器按照对应于不同的图书数据库分别建立相应的核心索引的方式来形成相应的检索服务器组;并且所述索引服务器层包含一个或多个索引服务器,所述索引服务器按照对应于不同的图书数据库分别保存相应的索引的方式来形成相应的索引服务器组。
20.根据权利要求13所述的方法,其特征在于所述核心索引按照索引的倒排链长度处于两个阈值之间的方式来建立。
21.根据权利要求13所述的方法,其特征在于所述核心索引根据索引的历史出现频度来建立。
22.根据权利要求13所述的方法,其特征在于所述核心索引根据与用户访问行为特征相对应的核心词汇来建立。
23.根据权利要求19所述的方法,其特征在于当用户并发查询请求增长时,检索控制器和检索服务器组的数目以线性的方式增加;
24.根据权利要求19所述的方法,其特征在于当数字图书馆的数据规模增加时,检索控制器和索引服务器的数目以线性的方式增加。
全文摘要
本发明提出了一种在数字图书馆中所采用的检索系统,包括包含一个或多个检索控制器的检索控制器层,用于将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;包含一个或多个检索服务器的检索服务器层,用于存储数字图书馆的核心索引数据,并针对所述用户查询首先在所述核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及包含一个或多个索引服务器的索引服务器层,用于存储数字图书馆的所有索引数据,以便从所述所有索引数据中检索出相应的索引以获取检索结果。
文档编号H04L29/06GK101051309SQ20061007207
公开日2007年10月10日 申请日期2006年4月6日 优先权日2006年4月6日
发明者廖祥文, 孙健, 王斌, 杨东波, 程学旗 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1