[发明专利]一种云环境中的文本索引在线更新方法有效
| 申请号: | 201010554536.X | 申请日: | 2010-11-19 |
| 公开(公告)号: | CN102004778A | 公开(公告)日: | 2011-04-06 |
| 发明(设计)人: | 王建民;丁贵广;张君 | 申请(专利权)人: | 清华大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 罗文群 |
| 地址: | 100084*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 环境 中的 文本 索引 在线 更新 方法 | ||
技术领域
本发明涉及一种云环境中的文本索引在线更新方法,属于计算机信息检索技术领域。
背景技术
互联网和企业信息化的发展,产生了大量的非结构化数据,如产品模型、技术文档、管理文本、电子邮件等,文本数据就是最常见的非结构化数据之一。为了实现海量数据的存储、索引和检索,许多的文本检索系统都采用了云计算方案。网络文本搜索引擎是一类最常见的提供文本检索服务的应用,如Google和Nutch。
在云环境中,索引数据一般被切分成许多的索引片,然后部署在集群中,每个节点持有其中部分索引片,每个索引片一般都有多个备份来保证容错性和负载平衡。许多采用云计算方案的文本检索系统表现出了优异的索引和检索性能,却忽略了索引的即时性要求。它们假设文本数据索引在一段时间内是不变的,因此采取批量更新索引的方法,在一段时间内持续对新到来的数据进行索引,定期地将新索引数据批量更新到集群中,其索引数据更新周期一般比较长。
对于云环境的文本检索系统来说,用户要求将随时到来的新文档在尽可能短的时间内更新到索引中,传统的批量更新方法无法满足用户的需求。高度的精确性和时效性要求,使得其索引管理与更新成为一个重点,也是一个难点。
索引的在线更新就是在此环境下提出来的。它要求文本检索系统能够在不影响其他索引数据、不中止检索服务的情况下进行指定索引数据的更新。不过,在多数情况下,索引更新都会导致一定时间的服务中断;而在线更新的目标就是,将服务中断的时间尽可能地缩短。
Mauricio Marin等人设计了一个支持在线更新的文本搜索引擎。该搜索引擎允许用户执行检索操作及添加文本的操作。添加的文本被索引后,索引数据发送到相应节点进行更新。该系统通过索引读写的并发控制来避免读写冲突。但是该系统并没有对索引做冗余备份,无法提供可靠的索引服务和负载平衡。对于每个新文本,该系统都直接添加到索引数据中;在许多这样的请求同时发生的时候,节点就需要频繁地更新同一索引,导致CPU的过度繁忙;而对索引读写的并发控制使得用户此时的检索请求得不到及时的响应。
Mark H.Butler和James Rutherford开发的Distributed Lucene也是一个支持索引在线更新的分布式文本索引系统。该系统采用了lease机制来实现索引的并发控制,当一个节点更新其索引备份时,该节点必须先获得该索引的lease。用户向一个索引中增加或删除文档时,需要为该索引创建一个Uncommited IndexVersion,操作完成后显式地将其提交。但是对于一个索引只能创建一个Uncommited IndexVersion,这就使得并发用户不得不等待前面用户的操作完成,影响了并发的效率。另外,该系统中的索引操作是在节点中执行的,用户需要将原始文本传送到节点上;因为文本的索引相对于原始文本来说一般比较小,这样的设计会导致较大的网络带宽资源浪费。
传统的索引批量更新方法一般是,首先在一定时间内持续地创建新索引数据,等到创建完成,将集群内的原始数据全部删除,然后再将新的索引数据部署到集群中,从而启动新索引数据的检索服务。这种方法存在着较多的缺点:
一方面,批量更新一般需要重建全部索引,然后将新的索引数据部署到集群中,这将导致极大的数据传输量,因此占用很多的网络带宽和计算资源,执行时间也会很长,随着索引越来越大,对资源的需求将越来越高,成为系统的瓶颈。
另一方面,批量更新一般需要将原索引数据删除,然后再执行索引的更新。在索引的更新期间,系统必将停止检索服务。如果更新时间较长,那么必然导致系统长时间无法提供服务。
发明内容
本发明的目的是提出一种云环境中的文本索引在线更新方法,针对已有技术中批量更新的不足,设计了在线更新机制、索引片增量的缓存机制等,以保证并发更新的一致性,并避免索引的频繁更新,降低带宽资源和计算资源的占用。
本发明提出的云环境中的文本索引在线更新方法,包括以下步骤:
(1)在用户向文本检索系统添加、删除或更新文件后,将该文件的识别信息发送至索引模块;索引模块根据文本检索系统中定义的索引切分规则,对接收的识别信息进行判断,确定该文件所属的索引片,并为该文件创建一个与该索引片相对应的增量数据;索引模块将该增量数据缓存,并对相同索引片的多次添加、删除或更新产生的增量数据合并;当用户结束添加、删除或更新操作后,索引模块将所有的索引片增量数据上传到共享文件系统中;索引模块向文本检索系统中的集群主节点发出索引片更新命令,该命令中包括:每个被更新索引片的名称、增量类型、增量的存储路径;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010554536.X/2.html,转载请声明来源钻瓜专利网。





