著录项信息
专利名称 | 在数字图书馆中所采用的检索系统和检索方法 |
申请号 | CN200610072075.6 | 申请日期 | 2006-04-06 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2007-10-10 | 公开/公告号 | CN101051309 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 中国科学院计算技术研究所 | 申请人地址 | 北京市海淀区中关村科学院南路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国科学院计算技术研究所 | 当前权利人 | 中国科学院计算技术研究所 |
发明人 | 廖祥文;孙健;王斌;杨东波;程学旗 |
代理机构 | 中科专利商标代理有限责任公司 | 代理人 | 朱进桂 |
摘要
本发明提出了一种在数字图书馆中所采用的检索系统,包括:包含一个或多个检索控制器的检索控制器层,用于将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理以返回给用户;包含一个或多个检索服务器的检索服务器层,用于存储数字图书馆的核心索引数据,并针对所述用户查询首先在所述核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以及包含一个或多个索引服务器的索引服务器层,用于存储数字图书馆的所有索引数据,以便从所述所有索引数据中检索出相应的索引以获取检索结果。
1、一种在数字图书馆中所采用的检索系统,包括:
包含一个或多个检索控制器的检索控制器层,用于将来自用户的 用户查询转发到检索服务器层,并对来自检索服务器层的相应检索结 果进行处理以返回给用户;
包含一个或多个检索服务器的检索服务器层,用于存储数字图书 馆的核心索引数据,并针对所述用户查询首先在所述核心索引数据中 执行检索以获取检索结果,而在核心索引数据中无法获取检索结果的 情况下,则通过访问索引服务器层以获取检索结果,并将所获得的检 索结果提供给检索控制器层;以及
包含一个或多个索引服务器的索引服务器层,用于存储数字图书 馆的所有索引数据,以便响应检索服务器层的访问从所述所有索引数 据中检索出相应的索引以获取检索结果,
其中,所述核心索引数据按照以下方式之一来建立:按照索引的 倒排链长度处于两个阈值之间的方式来建立;根据索引的历史出现频 度来建立;以及根据与用户访问行为特征相对应的核心词汇来建立。
2、根据权利要求1所述的系统,其特征在于还包括:
分发服务器层,用于对来自用户的用户查询进行负载均衡处理。
3、根据权利要求2所述的系统,其特征在于所述负载均衡处理采 用基于IP层的负载分发、基于传输层的负载分发、基于应用层的负载 分发来实现。
4、根据权利要求3所述的系统,其特征在于所述基于IP层的负 载分发包括基于IP层的Round-Robin方式。
5、根据权利要求1所述的系统,其特征在于由所述检索控制器层 对来自检索服务器层的相应检索结果进行处理通过对所述相应检索结 果进行合并并生成摘要来实现。
6、根据权利要求5所述的系统,其特征在于所述检索控制器层对 检索结果用XML格式进行组织。
7、根据权利要求1所述的系统,其特征在于所述检索服务器层中 的检索服务器按照对应于不同的图书数据库分别建立相应的核心索引 的方式来形成相应的检索服务器组,并且所述索引服务器层中的索引 服务器按照对应于不同的图书数据库分别保存相应的索引的方式来形 成相应的索引服务器组。
8、根据权利要求7所述的系统,其特征在于当用户并发查询请求 增长时,检索控制器和检索服务器组的数目以线性的方式增加。
9、根据权利要求7所述的系统,其特征在于当数字图书馆的数据 规模增加时,检索服务器和索引服务器的数目以线性的方式增加。
10、一种在数字图书馆中所采用的检索方法,包括:
由检索控制器层将来自用户的用户查询转发到检索服务器层,并 对来自检索服务器层的相应检索结果进行处理以返回给用户;
由检索服务器层针对所述用户查询,首先在所存储的数字图书馆 核心索引数据中执行检索以获取检索结果,而在核心索引数据中无法 获取检索结果的情况下,则通过访问索引服务器层以获取检索结果, 并将所获得的检索结果提供给检索控制器层;以及
响应来自检索服务器层的访问,由索引服务器层从所存储的数字 图书馆的所有索引数据中检索出相应的索引以获取检索结果,
其中,所述核心索引数据按照以下方式之一来建立:按照索引的 倒排链长度处于两个阈值之间的方式来建立;根据索引的历史出现频 度来建立;以及根据与用户访问行为特征相对应的核心词汇来建立。
11、根据权利要求10所述的方法,其特征在于还包括:
由分发服务器层对来自用户的用户查询进行负载均衡处理。
12、根据权利要求11所述的方法,其特征在于所述负载均衡处理 采用基于IP层的负载分发、基于传输层的负载分发、基于应用层的负 载分发来实现。
13、根据权利要求12所述的方法,其特征在于所述基于IP层的 负载分发包括基于IP层的Round-Robin方式。
14、根据权利要求10所述的方法,其特征在于由所述检索控制器 层对来自检索服务器层的相应检索结果进行处理的步骤包括:对来自 检索服务器层的相应检索结果进行合并并生成摘要。
15、根据权利要求14所述的方法,其特征在于所述检索控制器层 对检索结果用XML格式进行组织。
16、根据权利要求10所述的方法,其特征在于所述检索服务器层 包含:一个或多个检索服务器,所述检索服务器按照对应于不同的图 书数据库分别建立相应的核心索引的方式来形成相应的检索服务器 组;并且所述索引服务器层包含:一个或多个索引服务器,所述索引 服务器按照对应于不同的图书数据库分别保存相应的索引的方式来形 成相应的索引服务器组。
17、根据权利要求16所述的方法,其特征在于当用户并发查询请 求增长时,检索控制器和检索服务器组的数目以线性的方式增加;
18、根据权利要求16所述的方法,其特征在于当数字图书馆的数 据规模增加时,检索服务器和索引服务器的数目以线性的方式增加。
技术领域\n本发明涉及信息检索领域,更具体地,涉及一种在数字图书馆中 所采用的检索系统和检索方法,能够高效地进行检索且易于扩展,并 且能应用于具有海量数据和大规模并发访问的数字图书馆。\n背景技术\n当前,有很多技术可用于构建数字图书馆。一般的数字图书馆采 用数据库方法,该方法能够方便快捷地构建数据规模比较小的图书馆 系统。但是当数据规模增长到TB级时,其索引规模十分庞大,检索速 度低,无法满足当前信息爆炸式增长的要求。另一方面,当用户并发 查询请求量增长时,这些技术无法灵活扩展,难以适应不断增长的用 户需求。\n当前,还存在被一些著名的商业搜索引擎所采用的信息检索技 术。这些技术通常采用采集器从互联网(INTERNET)上自动抓取网页, 且采用索引技术为网页进行索引。在这些技术中,典型地使用倒排表 (Inverted List),并基于网页特点进行排序且返回检索结果,为用 户提供秒级的检索服务。\n然而,图书检索有其自身的特点:与自动抓取的Web数据不同, 图书馆的数据为经过加工的质量较高的结构化数据,其数据内容更为 丰富;另外,Web检索只是针对网页平面内容进行检索,而图书检索系 统需要更深层次的字段级检索;此外,Web检索更为注重前几十个检索 结果的准确性,而图书检索要求查全、查准,且要求长期有效的检索。\n目前的商业搜索引擎没有充分考虑到数字图书馆服务的这些特 点,而且对于硬件资源的要求很高,这对于目前作为公共服务的图书 馆来说,是难以做到的。\n随着近年来图书馆的发展和馆藏数字化资源的不断丰富,数字图 书馆已经拥有大量的数字资源,并需要通过互联网对外提供服务。这 就对数字图书馆建设提出了一个挑战:如何面临海量元数据和服务于 全世界需求者来构造一个检索系统。因此,人们迫切需要一种高效率、 可扩展的数字图书馆构建方法,该方法必须满足图书检索查全、查准 的要求,且能够随着数据增长、用户并发查询的增长而进行扩展,并 且能处理多语种数据源。\n发明内容\n因此,本发明的目的是提出一种在数字图书馆中所采用的检索系 统和检索方法,能够高效地进行检索且易于扩展,并且能应用于具有 海量数据和大规模并发访问的数字图书馆。\n为了实现以上目的,本发明提出了一种在数字图书馆中所采用的 检索系统,包括:包含一个或多个检索控制器的检索控制器层,用于 将来自用户的用户查询转发到检索服务器层,并对来自检索服务器层 的相应检索结果进行处理以返回给用户;包含一个或多个检索服务器 的检索服务器层,用于存储数字图书馆的核心索引数据,并针对所述 用户查询首先在所述核心索引数据中执行检索以获取检索结果,而在 核心索引数据中无法获取检索结果的情况下,则通过访问索引服务器 层以获取检索结果,并将所获得的检索结果提供给检索控制器层;以 及包含一个或多个索引服务器的索引服务器层,用于存储数字图书馆 的所有索引数据,以便通过检索服务器层的访问从所述所有索引数据 中检索出相应的索引以获取检索结果。\n优选地,所述检索系统还包括:分发服务器层,用于对来自用户 的用户查询进行负载均衡处理。\n优选地,所述负载均衡处理采用基于IP层的负载分发、基于传输 层的负载分发、基于应用层的负载分发来实现。\n优选地,所述基于IP层的负载分发包括基于IP层的Round-Robin 方式。\n优选地,由所述检索控制器层对来自检索服务器层的相应检索结 果进行处理通过对所述相应检索结果进行合并并生成摘要来实现。\n优选地,所述检索控制器层对检索结果用XML格式进行组织。\n优选地,所述检索服务器层中的检索服务器按照对应于不同的图 书数据库分别建立相应的核心索引的方式来形成相应的检索服务器 组,并且所述索引服务器层中的索引服务器按照对应于不同的图书数 据库分别保存相应的索引的方式来形成相应的索引服务器组。\n优选地,所述核心索引按照索引的倒排链长度处于两个阈值之间 的方式来建立。\n优选地,所述核心索引根据索引的历史出现频度来建立。\n优选地,所述核心索引根据与用户访问行为特征相对应的核心词 汇来建立。\n优选地,当用户并发查询请求增长时,检索控制器和检索服务器 组的数目以线性的方式增加。\n优选地,当数字图书馆的数据规模增加时,检索控制器和索引服 务器的数目以线性的方式增加。\n为了实现上述目的,根据本发明,还提出了一种在数字图书馆中 所采用的检索方法,包括:由检索控制器层将来自用户的用户查询转 发到检索服务器层,并对来自检索服务器层的相应检索结果进行处理 以返回给用户;由检索服务器层针对所述用户查询,首先在所存储的 数字图书馆核心索引数据中执行检索以获取检索结果,而在核心索引 数据中无法获取检索结果的情况下,则通过访问索引服务器层以获取 检索结果,并将所获得的检索结果提供给检索控制器层;以及响应来 自检索服务器层的访问,由索引服务器层从所存储的数字图书馆的所 有索引数据中检索出相应的索引以获取检索结果。\n附图说明\n通过参考以下结合附图对所采用的优选实施例的详细描述,本发 明的上述目的、优点和特征将变得显而易见,其中:\n图1是示出了根据本发明的实施例,在数字图书馆中所采用的检 索系统的示意配置图;以及\n图2示出了对图1所示的检索系统的测试平台架构的示意图。\n具体实施方式\n下面将参考附图来说明本发明的优选实施例。\n图1是示出了根据本发明的实施例,在数字图书馆中所采用的检 索系统的示意配置图。该检索系统采用了基于集群(cluster)的体系 架构。\n如图1所示,根据本发明实施例的在数字图书馆中所采用的检索 系统包括:分发服务器层1,其采用Round-Robin方式进行负载均衡; 检索控制器层2,其中包括作为检索控制器的Web服务器,该Web服务器 采用Apache服务器,并将原始数据文档以XML格式来进行存储,且采用 归并算法对来自检索服务器的检索结果进行合并,生成摘要返回给用 户;检索服务器层3,对用户查询进行检索并将检索结果返回给检索控 制器层2;以及索引服务器层4,存放所有数据索引,以便为检索服务 器层3服务。下面分别详细描述各层次的配置。\n1)分发服务器层1\n首先,描述分发服务器层1中的分发服务器如何进行负载均衡, 即,如何实现分发服务器层1的负载分发功能。\n目前,负载分发主要有3种类型:基于IP层的负载分发、基于第 四层(传输层)的负载分发、基于第7层(应用层)的负载分发,并且,针 对各种类型的负载分发存在相应的硬件交换机。作为示例,在本发明 中,可以采用基于IP层的Round-Robin方式进行负载均衡。\n2)检索控制器层2\n下面描述检索控制器层2中的检索控制器如何分发用户查询给检 索服务器,如何进行归并排序、生成摘要并返回给用户,即实现检索 控制器层2的检索控制功能。\n通常,作为检索控制器的Web服务器采用Apache服务器,并同时 加载FastCgi模块。\n在该Web服务器中,对对应于检索结果的图书数据用XML格式进行 组织。作为示例,其格式如下:\n
\n00001\n 现代信息检索\n Ricardo Baeza-Yates,etc\n 机械工业出版社\n …\n \n同时,该Web服务器中采用如下算法为用户进行服务:\n该Web服务器从分发服务器器获取用户查询Query_A;然后将所获 取的用户查询Query_A转发给相应的检索服务器。在检索服务器完成检 索之后,从相应组内的检索服务器中获取检索结果,例如,得到了相 应组内的3个检索服务器的检索结果:检索服务器A向其返回Ra,检索 服务器B向其返回Rb,检索服务器C向其返回Rc。然后,检索控制器对 检索结果Ra、Rb、Rc进行归并排序以得到合并结果R。\n根据合并结果R获取检索结果并生成摘要,将所生成的摘要返回 给用户。\n3)检索服务器层3\n再次,描述检索服务器层3中的检索服务器如何根据本地的核心 索引进行检索,即实现检索服务器层3的检索功能。\n由于面对的是海量数据,将所有数据的索引全部放在检索服务器 上不是现实的。因此,在本发明中,引入了“检索服务器组”的概念。 也就是,将索引分布在不同的机器上,所有这些机器组成了一个检索 服务器组。根据本发明的数字图书馆中所采用的检索系统对用户提供 的服务是分库检索的,数据也是分库组织的,因此,可以采用局部分 布的方式,即,对应于不同的图书数据库,分别建立相应的索引,然 后,由不同的检索服务器组为用户服务。\n但是,如果将所有数据的索引都放在检索服务器组上,当用户并 发查询请求数增长时,那么需要的机器数目将是非常庞大的。\n为了解决该问题,在本发明中,引入了“核心索引”概念。对所 有数据的索引设定两个阈值LOW_INDEX_LIST和HIGH_INDEX_LIST。然 后,将索引的倒排链长度INVERTED_LIST_LENGTH满足:\nLOW_INDEX_LIST<=INVERTED_LIST_LENGTH<=HIGH_INDEX_LIST 的所有倒排链组成的索引称为“核心索引”。两个阈值LOW_INDEX_LIST 和HIGH_INDEX_LIST可以根据实践来进行调整。通常,“核心索引”大 小约占所有数据的索引的30%。\n核心索引的建立可以采用多种依据,例如,该核心索引的建立可 以根据索引的历史出现频度来实现,或者可以根据与用户访问行为特 征相对应的核心词汇来实现。\n当接收到来自检索控制器层2的用户查询时,所述检索服务器层3 针对所述用户查询,首先在所述核心索引数据中执行检索以获取检索 结果,而在核心索引数据中无法获取检索结果的情况下,则通过访问 索引服务器层4以获取检索结果,并将所获得的检索结果提供给检索控 制器层2。\n4)索引服务器层4\n最后,将描述索引服务器层4中的索引服务器的配置,即实现索 引服务器层4的海量索引数据存储功能。\n数字图书馆所涉及的索引数据可以是海量数据。由于所有索引数 据的数据量十分庞大,将所有索引数据放在单台机器上也是不现实的。 通常,如以上所提到的,数字图书馆对数据进行处理时是按照图书分 类学把图书数据分成多个库为用户提供服务的。因此,在本发明中, 采用了局部分布的方式。也就是,对应于不同的图书数据库,分别建 立索引,加载分布在不同的索引服务器组上,所有的索引服务器组构 成检索服务器层。\n在此基础上,所述索引服务器层4可以响应检索服务器层3的访问 从所述所有索引数据中检索出相应的索引以获取检索结果,并将检索 结果返回给检索服务器层3。\n另外,需要注意的是,为了处理多语种,在本发明的检索过程中 采用了UNICODE编码。\n下面将参考图2来描述对图1所示的检索系统的测试平台架构的 示意图。更进一步,将说明基于图1描述的体系架构,如何从数据规模 小且用户并发查询请求数少的架构到数据规模大且用户并发查询请求 数大的架构推演方案,即图1所示的检索系统的扩展问题。\n如图2所示,对图1所示的检索系统的测试平台架构包括:4个 CPU2G、内存为8G的节点机、16个CPU2G、内存为4G的刀片机构成的集 群平台上测试。操作系统均为Redhat Linux 9.0(内核版本 2.4.26#SMP)。在图2中的具体配置表现为:多个模拟客户端、千兆以 太网、Web服务器接入设备、以及检索服务器机群。\n在该测试中的用户实验的数据可以包括:(1)中文目次数据;(2) 西文目次数据;(3)EBSCO数据;(4)CNMARC数据;(5)USMARC数据。 所涉及的元数据总量为2300多万条,容量为13.6G。\n各个负载的分布为:各个库、字段(题名、摘要、出版社、作者) 均匀分布,包含有单个检索词、2个检索词、3个检索词“与”的查询 约各占23%;两个检索词“或”约占11%;4个检索词“与”约占10%; 5个检索词“与”约占5%;两个检索词“非”占5%。检索结果返回前500 个结果(文档ID和权值)。\n根据该测试可以得到:如果在单节点上加载索引大小为2G(约 2300万条元数据)的核心索引,则检索速度为283.3应答/秒 (replies/second),检索控制器CPU平均占用率约为27%;检索控制器 加载2个检索服务器时,CPU平均占用率约为51%,检索速度为555.5应 答/秒;加载1个检索服务器CPU平均占用率约为90%,检索速度为740.8 应答/秒。特别指出的是,分发服务器的性能不是瓶颈,通常1到2台就 可以满足较大的并发请求数目,在推演中我们设置为2台。\n当数据规模增大时,对新增的数据建立索引,加载到新的检索服 务器上,同时把新的检索服务器加到各个组中,具体来说,每一组检 索服务器节点的数目是由索引的总大小p和每一个节点的可用内存大 小q决定的,即,所需检索服务器节点数目=p/q。\n当用户规模增大时,将部署更多组同构的检索服务器,各组检索 服务器加载相同的数据索引,同时由负载均衡器转发用户请求给相应 的检索服务器组。\n在此数据条件下进行推演得到2亿条记录和10000次并发请求的 基于当前测试系统需要的硬件配置方案:\n2亿条记录的索引大小约为20G,索引服务器需要2台16G内存的 节点;\n核心索引的大小约为:20×30%=6G;\n检索控制器个数:10000/740.8=13.49 14个;\n检索服务器组数:10000/283.3=35.30 36组;\n每组检索服务器的节点个数:6GB/2GB=3个;\n负载分发器:2台;\n因此,总的节点个数为:14+38×3+2+2=132台。\n如上所述,根据本发明,构建了面向具有海量数据、大规模用户 并发查询请求的数字图书馆系统的检索系统。本发明采用了四层体系 框架。在实现上,本发明充分考虑到图书馆应用的特点,分库建立索 引。当用户并发查询请求增长时,通过增加相应的检索控制器和检索 服务器组,以近似线性的方式增加;当数字图书馆的数据规模增加时, 也以近似线性的方式增加各个检索控制器组内的检索控制器和索引服 务器。另外,由于采用了UINCODE编码,所以该检索系统和检索方法独 立于语种。\n尽管以上已经结合本发明的优选实施例示出了本发明,但是本领 域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可 以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实 施例来限定,而应由所附权利要求及其等价物来限定。
法律信息
- 2018-08-31
专利实施许可合同备案的生效
IPC(主分类): G06F 17/30
合同备案号: 2018110000033
专利号: ZL 200610072075.6
申请日: 2006.04.06
让与人: 中国科学院计算技术研究所
受让人: 中科天玑数据科技股份有限公司
发明名称: 在数字图书馆中所采用的检索系统和检索方法
申请公布日: 2007.10.10
授权公告日: 2009.02.04
许可种类: 普通许可
备案日期: 2018.08.07
- 2009-02-04
- 2007-12-05
- 2007-10-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-09-15
|
2003-10-14
| | |
2
| |
2005-12-14
|
2005-05-06
| | |
3
| |
2002-10-16
|
2001-03-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |