一种数据索引系统和方法与流程

文档序号:20875297发布日期:2020-05-26 16:25阅读:302来源:国知局
一种数据索引系统和方法与流程

本发明涉及数据查询领域,尤其涉及通过数据索引为用户提供数据查询服务的技术领域。



背景技术:

随着互联网时代的到来,热点新闻和娱乐头条等信息地传播越来越广,为了便于人们查找筛选自已喜欢的内容,搜索引擎应运而生。在满足人们搜索需求的同时,搜索引擎面临着大量用户的搜索需求,最高可达每秒几千甚至几万次点击。为了满足用户的搜索需求,在搜索引擎内部通常会提供数据索引服务。这种数据索引通常为倒排索引,这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址,在倒排索引中,不是由记录来确定属性值,而是由属性值来确定记录的位置。这种倒排索引适于在搜索引擎内部使用,即可以将用户的搜索请求转化为一个或者多个属性值,然后根据数据索引获得具有各属性值的记录地址如网页url等,随后返回搜索结果。

由于搜索引擎一方面为用户提供搜索服务,另一方面又需要从网上获取最新的网页内容,所以为了保证搜索引擎搜索数据的实时性,需要对其中的数据索引进行更新。在现有技术中所采用的索引更新策略有两种:

1.完全重建策略,即当新抓取的文档达到一定数量时,将新增文档和原先的老文档进行合并,然后对所有文档重新建立索引。新索引建立完成后,老的索引被遗弃释放,之后对用户查询的响应完全由新的索引负责。这种策略存在的问题在于,新抓取的文档不能实时在索引中体现,导致搜索数据不够及时,另外,在创建索引期间的文档可能不能被索引到,导致数据不一致。

2.再合并策略:有新增文档进入搜索系统时,搜索系统在内存维护临时倒排索引来记录其信息,当新增文档达到一定数量,或者指定大小的内存被消耗完,则把临时索引和老文档的倒排索引进行合并,以生成新的索引。这种策略的问题在于,随着索引文件变大,构造一个新的索引需要大量的时间和资源,在构造索引文件期间新增的文档不能在新索引中体现,这样也会导致搜索数据不够及时,同时也会导致索引结果不一致的问题。

以上几种策略虽然都可以在通过索引切换来持续为用户提供准确的结果,但是没有考虑到随着网络数据的增加,构造新索引期间也会有新增的网络数据,这会导致网络数据不会在索引结果中体系出来,从而产生不能尽量实时地获得包括新文档的搜索结果的实时性问题。

为此,需要一种新的数据索引提供方案,可以在进行索引切换的同时,保证数据索引更新的一致性和实时性。



技术实现要素:

为此,本发明提供了一种新的数据索引方案,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种数据索引的方法,该方法包括步骤:由当前全量索引和活跃增量索引为用户提供数据服务,基于新获取的数据更新元数据和活跃增量索引,在触发时刻触发创建新全量索引,以便利用该触发时刻对应的元数据来创建新全量索引,利用在该触发时刻与新全量索引创建完成时刻之间的期间新获取的数据更新元数据、活跃增量索引和备份增量索引,以及在新全量索引创建完成之后,将新全量索引设置为当前全量索引,交换活跃和备份增量索引,并由新设置的当前全量索引和活跃增量索引为用户提供数据服务。

可选地,根据本发明的方法还包括:重复上述更新元数据和活跃增量索引,触发创建新全量索引,利用在触发时刻与新全量索引创建完成时刻期间新获取的数据更新所述元数据、活跃增量索引和备份增量索引,以及新设置当前全量索引、活跃和备份增量索引的步骤。

可选地,在根据本发明的方法中,触发时刻设置为在新设置了当前全量索引之后的预定时刻,或者设置为活跃增量索引达到预定数据量时的那个时刻。

可选地,数据索引包括数据属性值和数据存储位置之间的对应关系,根据本发明的方法还包括步骤:从新获取的数据中提取数据属性值和数据存储位置,而利用新获取的数据更新元数据和增量索引的步骤包括:将所提取的数据属性值和数据存储位置写入到元数据和活跃增量索引中。

可选地,在根据本发明的方法中,新获取的数据包括网络内容,数据存储位置包括该网络内容对应的网络链接,以及该数据属性值包括从该网络内容中提取的数据属性。

可选地,在根据本发明的方法中,在触发时刻与新全量索引创建完成时刻期间更新所述备份增量索引的步骤包括:在更新备份增量索引之前,清空备份增量索引中的内容。

可选地,在根据本发明的方法中,由当前全量索引和活跃增量索引为用户提供数据服务的步骤包括:接收包括要查询的数据属性值的用户请求,从当前全量索引获取与所查询的数据属性值相对应的第一数据存储位置,从活跃增量索引获取与所查询的数据属性值相对应的第二数据存储位置,以及合并第一数据存储位置和第二数据存储位置以便将合并后的数据存储位置作为结果返回给用户。

可选地,根据本发明的方法还包括步骤:统计用户请求,以获取查询次数超过预定数量的热门请求列表;在基于元数据创建新全量索引期间,对于热门请求列表中的每个请求,预先从新全量索引中获取相对应的第一数据存储位置;以及缓存热门请求列表和所获取的相应第一数据存储位置,以便在将新全量索引设置为当前全量索引之后使用。

可选地,在根据本发明的方法中,由当前全量索引和活跃增量索引为用户提供数据服务的步骤包括:如果用户请求在热门请求列表中,则从缓存中获取所述第一数据存储位置,否则从当前全量索引中获取所述第一数据存储位置。

可选地,在根据本发明的方法中,增量索引包括奇数增量索引和偶数增量索引,当奇数增量索引被设置为活跃增量索引时,偶数增量索引被设置为备份增量索引;以及当偶数增量索引被设置为活跃增量索引时,奇数增量索引被设置为备份增量索引。

根据本发明的另一个方面,还提供了一种数据索引系统,该系统包括:数据存储单元,其中存储元数据;索引存储单元,存储当前全量索引、活跃增量索引以及备份增量索引;增量索引更新单元,适于基于新获取的数据更新元数据和活跃增量索引;全量索引构建单元,适于在触发时刻触发创建新全量索引,以便利用触发时刻对应的元数据来创建新全量索引;索引切换单元,适于在新全量索引创建完成之后,将新全量索引设置为当前全量索引,交换活跃和备份增量索引,并由新设置的当前全量索引和活跃增量索引为用户提供数据索引;以及该增量索引更新单元适于在触发时刻与新全量索引创建完成时刻之间的期间,利用该期间新获取的数据更新元数据、活跃增量索引和备份增量索引。

根据本发明的还有一个方面,还提供了一种计算设备。该计算设备包括至少一个处理器和存储有程序指令的存储器,其中,程序指令被配置为适于由至少一个处理器执行并包括用于执行上述提供数据服务方法的指令。

根据本发明的数据索引方案,可以通过全量索引创建过程中双写活动和备份增量索引,保证实时更新的索引数据在两种类型的增量索引中都存在,全量索引创建并分发成功后,切换活动和备份增量索引并停止双写增量索引,保证了索引数据的一致性。

另外,根据本发明的方案,对用户查询频繁的检索语句在全量索引创建并分发完成时做了一次预热,保证热门查询结果已经缓存过,从而进一步提高了搜索服务的实时性。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的搜索系统100的示意图;

图2示出了根据本发明一个实施例的计算设备200的示意图;

图3示出了根据本发明一个实施例的数据索引方法300的流程图;

图4示出了根据本发明另一个实施例的数据索引方法400的流程图;以及

图5示出了根据本发明一个实施例的数据索引系统500的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的搜索系统100的示意图。如图1所示,搜索系统100包括客户端110、数据索引系统500和网络服务器120。

虽然在图1中仅仅示出了3个客户端110,但是应当理解,在实践中,存在有相当大量的客户端110,这个客户端110具有各自形式,包括但不限于移动终端、个人计算机、个人数字助理等。本发明不受限于客户端110的类型,只要用户可以利用客户端110向数据索引服务系统500发出用户检索请求,并接收系统500返回的结果在客户端110中显示即可。例如客户端110可以是移动终端,通过安装在移动终端上的应用向系统500发出搜索请求,并且在移动终端的界面上显示搜索结果。

同样,虽然在图1中仅仅示出了2个网络服务器120,但是应当理解,在实践中,存在有相当大量的网络服务器120,这些网络服务器120具有各自形式,包括但不限于web服务器、应用服务器等。本发明不受限于网络服务器120的类型,只要这些网络服务器120可以由系统500访问,并将其上的网络内容130提供给数据索引系统500即可。

数据索引系统500与网络服务器120以及客户端110通信连接。系统500可以从网络服务器120获取网络内容130,并对所获取的网络内容130进行处理以获取各个搜索关键词。利用所获得的搜索关键词和网络内容的链接地址来构造数据索引510。数据索引510包括数据属性值和数据存储位置之间的对应关系。在这个实施方式中,数据属性值包括从网络内容130中提取的搜索关键词,而数据存储位置包括网络内容130的链接地址。

系统500可以利用网络爬虫技术从网络服务器120获取网络内容130。一旦网络服务器120提供新的网络内容130,系统500可以获取到该内容,并更新数据索引510。在下文中将参考图3和4进一步详细描述在系统500中管理数据索引的方法300和400。

系统500接收客户端110的搜索请求,从搜索请求中提取搜索关键词,并从数据索引510中检索相应的数据存储位置,并返回给客户端110。对于搜索而言,数据存储位置为网络内容130的链接地址,这样,客户端110就可以利用该链接地址来从网络服务器120获取网络内容130,以便显示在客户端110中,从而完成网络搜索操作。

根据本发明的实施方式,系统500可以通过如下所述的计算设备200来实现。图2示出了根据本发明一个实施例的计算设备200的示意图。

如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。

计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备200可以实现为服务器,例如数据库服务器、应用程序服务器和web服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备200也可以实现为小尺寸便携(或者移动)电子设备的一部分。

根据本发明的一个实施方式,系统500由计算设备200来实现,并且计算设备200被配置为执行根据本发明的数据索引方法300和/或400。其中,计算设备200的应用222中包含执行根据本发明的数据索引方法300和/或400的多条程序指令,而程序数据224还可以存储系统500的配置信息等。

应当注意的是,根据本发明的另一个实施方式,系统500的一个或者多个组成单元,或者各个组成单元的一个或者多个部分可以由计算设备200来实现。这些计算设备200中的应用222分别实现了根据本发明的方法300和/或400的一个或者多个部分的多条程序指令,这些应用222一起协作来实现根据本发明的方法300和/或400。

图3示出了根据本发明一个实施例的数据索引方法300的流程图。方法300在上述数据索引系统500中执行。如图3所示,方法300始于步骤s310。

在步骤s310中,由当前全量索引和活跃增量索引为用户提供数据索引。当前全量索引是利用在某个时刻的所有元数据所创建的全量索引,增量索引则是利用在该时刻之后新增的元数据所创建的新增索引。结合利用全量索引进行的检索结果和利用增量索引进行的检索结果,可以获得完整的检索结果。

根据本发明的一个实施方式,提供了两类增量索引,分别为奇数增量索引和偶数增量索引。这两类增量索引中的一类被设置为活跃增量索引,另一类则被设置为备份增量索引。例如当奇数增量索引为活跃增量索引时,则偶数增量索引被设置为备份增量索引,反之亦然。我们在步骤s310中以奇数增量索引为活跃增量索引为例进行描述。

可选地,元数据可以保存在特定数据存储设备如数据库中。现有的数据库可以由数据库管理系统来进行管理,可以支持各种版本控制,数据备份和分布式存储等。本发明不受限于数据库的具体形式,只要可以将元数据写入到数据库中,并且可以从数据库中读出元数据来创建全量索引,则这类数据库都在本发明的保护范围之内。

可选地,元数据包括数据属性值和数据存储位置对。因此,根据元数据创建的数据索引包括数据属性值和数据存储位置之间的对应关系。因此,在步骤s310中,为了向用户提供数据服务,首先接收包括要查询的数据属性值的用户请求。随后从当前全量索引获取与所查询的数据属性值相对应的第一数据存储位置,并从活跃增量索引获取与所查询的数据属性值相对应的第二数据存储位置。接着合并所获取的的第一数据存储位置和第二数据存储位置,以便将合并后的数据存储位置作为结果返回给用户。

步骤s310起始于当前全量索引刚刚使用的时刻。由于在创建全量索引期间,同样会有新文档被系统500所处理并产生新的元数据。这些新的元数据在存储到数据库中的同时,用于对当前的活跃增量索引进行更新。因此在步骤s310时刻,当前全量索引是利用在触发创建该全量索引时刻的所有元数据所创建的全量索引,而活跃增量索引则是利用在触发创建该全量索引的时刻和该全量索引刚刚投入使用的时刻期间新增的元数据所更新得到。

随后,方法300进入步骤s320,在步骤s320中,基于新获取的数据更新元数据和活跃增量索引。步骤s320对应于新创建的当前全量索引投入使用之后的运行期间。在该运行期间,系统500会不断获取网络上的文档进行分析,并由此获得新的数据,此时当前全量索引已经在使用中了,而全量索引的更新需要耗费大量的时间,因此新获取的数据不能用于更新当前的全量索引,但是可以用于对不需要耗费大量时间进行更新的活跃增量索引进行更新,同时利用新获取的数据更新所存储的元数据,如在数据库中的元数据。

在步骤s320中,由于备份增量索引并不为用户提供索引服务,所以仅仅对活跃的增量索引进行更新,而不对备份增量索引进行更新。

可选地,在步骤s320中,由于元数据包括数据属性值和数据存储位置对,所以可以对新文档进行处理以获取其中的多个数据属性值和数据存储位置,这样就可以针对一个文档创建多个元数据,并随后将这些元数据写入到存储元数据的数据库中。

在利用元数据来更新活跃增量索引时,可以在该增量索引中查找是否存在与元数据中的数据属性值相匹配的索引节点,如果存在,则将元数据中的数据存储位置写入到该索引节点的数据存储位置中;否则在该增量索引中创建新的索引节点。

当步骤s320运行一段时间之后,例如运行了一段特定时间,或者在活跃增量索引中累计的索引数据超过预定数量,或者说增量索引文件的大小超过预定值时,进入步骤s330。

在步骤s330中,触发创建新的全量索引,以便利用该触发时刻对应的元数据来创建新的全量索引。由于创建全量索引需要较长时间,而系统500会持续获取新的数据进行处理并更新元数据,因此需要明确以哪个时刻的元数据进行全量索引的构造。

随后,在步骤s340中,在步骤s330所确定的触发时刻与新的全量索引创建完成并投入使用的时刻所限定的时间间隔期间,利用该期间新获取的数据更新元数据、活跃增量索引和备份增量索引。利用数据进行元数据更新和增量索引更新的处理和步骤s320中描述的处理相同,这里不再进行赘述。应当注意的是,在这个期间,不仅仅对活跃增量索引(在示例中,即奇数增量索引)进行更新,也对备份增量索引(即,偶数增量索引)进行更新。在步骤s340执行期间,继续由当前的全量索引和活跃增量索引为用户提供数据服务。

可选地,在对备份增量索引进行更新之前,先清空原先在备份增量索引中的内容,或者创建一个新的备份增量索引来接收新的元数据内容。

当新的全量索引创建完成时,在步骤s350中,将新创建的全量索引设置为当前全量索引,交换活跃和备份增量索引,将当前的活跃增量索引设置为备份增量索引,而将当前的备份增量索引设置为活跃增量索引。即将奇数增量索引设置为备份增量索引,并将偶数增量索引设置为活跃增量索引,以便由新设置的当前全量索引和活跃增量索引继续为用户提供数据服务。

通过上述步骤s310-s350的处理,可以随着数据的增加而构造新的全量索引投入使用,并同时利用两类增量索引的切换来实现在索引期间提供的数据服务的一致性。

随后,可以重复步骤s320-s350的处理,构造新的全量索引并切换两类索引,以便一方面保证索引构造期间的数据一致性,同时还可以保证数据索引结果并不受索引切换的影响。

下面提供了一个根据提供数据索引的方法300而发生变化的状态过程,其中index表示与元数据meta对应的索引内容,例如index1对应于meta1,index2对应于meta2,诸如此类。

1、在步骤s310对应的状态1处,此时当前全量索引刚刚创建完成:

数据库:元数据meta1+meta2

全量索引:当前全量索引index1

活跃增量索引(此时为奇数增量索引):index2

备份增量索引(此时为偶数增量索引):index2

提供服务的索引为index1+index2

2、在步骤s320对应的状态2处:

数据库:元数据meta1+meta2+meta3

全量索引:当前全量索引index1

活跃增量索引(此时为奇数增量索引):index2+index3

备份增量索引(此时为偶数增量索引):index2

提供服务的索引为index1+index2+index3

3、在步骤s330和s340对应的状态3处:

数据库:元数据meta1+meta2+meta3+meta4

全量索引:当前全量索引index1新创建的全量索引index1+index2+index3

活跃增量索引(此时为奇数增量索引):index2+index3+index4

备份增量索引(此时为偶数增量索引):index4

提供服务的索引为index1+index2+index3+index4

4、在步骤s350对于的状态4处:

数据库:元数据meta1+meta2+meta3+meta4

全量索引:当前全量索引index1+index2+index3

活跃增量索引(此时为偶数增量索引):index4

备份增量索引(此时为奇数增量索引):index2+index3+index4

提供服务的索引为index1+index2+index3+index4

利用根据本方的数据索引方法300,考虑到全量索引创建耗时较长,在全量索引创建过程中双写奇偶增量索引,保证实时更新的索引数据在两种类型的增量索引中都存在,全量索引创建并分发成功后,切换增量索引并停止双写增量索引,保证了索引数据的一致性。

图4示出了根据本发明另一个实施例的数据索引方法400的示意图。在图4中所示的方法400的各个步骤中,和图3所示的方法300中的步骤相同或者相似的步骤用相同的序号表示,并且不再进行赘述。

如图4所示,在步骤s310之前还具有步骤s410。在步骤s410中,统计用户请求,以获取查询次数超过预定数量的热门请求列表。根据一种实施方式,可以记录用户请求,并对在步骤s310到s340所定义的上一个周期期间内的用户请求中的查询语句进行统计,确定查询次数超过预定数量的一个或者多个查询语句来构造热门请求列表。

在步骤s330触发构造新的全量索引,并在步骤s350使用该新的全量索引作为当前的全量索引之前,方法400还包括步骤s430。在步骤s430中,在新的全量索引已经构造完成但是还没有投入使用之前,对于在步骤s410所构造的热门请求列表中的每个请求,预先从新的全量索引中获取相对应的第一数据存储位置。随后在步骤s440中,缓存步骤s410获得的热门请求列表和在步骤s430获取的第一数据存储位置,以便在步骤s350将新全量索引设置为当前全量索引并投入使用之后,可以利用所缓存的搜索结果。

为此,在方法400中,步骤s320中还包括子步骤s420,即在由当前全量索引和活跃增量索引为用户提供数据服务期间,如果该用户请求在热门请求列表中,则从步骤s440所构造的缓存中获取相应的第一数据存储位置,否则从当前全量索引中获取所述第一数据存储位置。

根据图4所示的方法400,对用户的查询结果做了缓存,并统计每个索引周期内查询次数靠前的语句,在索引创建成功后会对这些语句的查询结果统一进行一次预热查询,这样在新的全量索引投入使用期间,热门查询的结果已经被缓存过,这提高了数据检索的效率。

图5示出了根据本发明一个实施例的数据索引系统500的示意图。应当注意的是,图2描述了一种可以实现系统500的计算设备200。计算设备200是以硬件划分的方式对系统500进行了描述,而图5是以功能模块划分的方式对系统500进行了描述。二者描述的方式不同,但是都在本发明的保护范围之内。

如图5所示,数据索引系统500包括数据存储单元520、索引存储单元512、增量索引更新单元530、全量索引构建单元540和索引切换单元550。

数据存储单元520例如为数据库,其中存储元数据522。根据一种实现方式,数据库中可以存储各种版本的元数据,并且可以记录某个时刻的全部元数据信息。元数据例如包括数据属性值和数据存储位置对。上面参考图3和4的方法300和400中已经描述了如果对新文档进行处理以获得元数据,并且利用元数据进行更新包括全量索引和增量索引在内的各个索引的具体实施方式,这里不在进行赘述。

索引存储单元512中存储各种索引,包括当前全量索引510a、奇数增量索引和偶数增量索引等。如先前所述,根据系统的运行阶段,交替地将奇数和偶数增量索引分别设置为活跃增量索引510b和备份增量索引510c。

增量索引更新单元530耦接到数据存储单元520和索引存储单元512,利用新获取的数据更新数据存储单元520中的元数据522和索引存储单元512中的活跃增量索引510b。根据一个实施例,增量索引更新单元530从新获取的数据中提取数据属性值和数据存储位置,并且将所提取的数据属性值和数据存储位置分别写入到元数据522和活跃增量索引510b中。

全量索引构建单元540同样耦接到数据存储单元520和索引存储单元512,在预定的触发时刻触发创建新全量索引,以便利用触发时刻对应的元数据520来在索引存储单元512中创建新全量索引510d。

在全量索引构建单元540被触发来创建新全量索引510d时,会将创建新全量索引的指示发送给增量索引更新单元530,此后,在该触发时刻与新全量索引创建完成时刻期间,增量索引更新单元530利用该期间新获取的数据不仅仅更新元数据510a和活跃增量索引510b,还更新备份增量索引510c。

可选地,增量索引更新单元530在更新备份增量索引510c之前,先清空备份增量索引中的内容。

索引切换单元550耦接到全量索引构建单元540和索引存储单元512,在全量索引构建单元540指示新全量索引创建完成之后,将新全量索引512d设置为当前全量索引512a,交换当前的活跃和备份增量索引512b和512c,即将当前的活跃增量索引设置为备份增量索引,而将当前的备份增量索引设置为活跃增量索引。例如,假如此时的活跃增量索引为奇数增量索引,则将奇数增量索引设置为备份增量索引,并将偶数增量索引设置为活跃增量索引,以便由新设置的当前全量索引510a和活跃增量索引510b继续为用户提供数据服务。

数据索引系统500还包括为用户处理请求的部件,即请求处理单元560。请求处理单元560接收包括要查询的数据属性值的用户请求,从索引存储单元512的当前全量索引510a获取与所查询的数据属性值相对应的第一数据存储位置,从活跃增量索引510b获取与所查询的数据属性值相对应的第二数据存储位置,随后合并第一数据存储位置和第二数据存储位置,以便将合并后的数据存储位置作为结果返回给用户。

另外,根据本发明的一种实施方式,可以对用户请求的处理结果进行缓存,以便提高请求处理的效率。数据索引服务系统500还包括预加载单元570。预加载单元570可以统计用户请求,以获取查询次数超过预定数量的热门请求列表。随后,预加载单元570在全量索引构建单元540基于元数据创建新全量索引期间,对于热门请求列表中的每个请求,预先从新全量索引中获取相对应的第一数据存储位置,并将热门请求列表和所获取的相应第一数据存储位置一并存储到缓存单元580中,以便在将新全量索引设置为当前全量索引之后使用。

这样,请求处理单元560在处理用户请求时,首先确定该用户请求是否在热门请求列表中,如果该请求在热门请求列表中,则从缓存单元580中获取第一数据存储位置,否则从当前全量索引510a中获取该第一数据存储位置。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1