一种数据索引系统和方法技术方案

技术编号:24289789 阅读:28 留言:0更新日期:2020-05-26 20:06
本发明专利技术公开了一种数据索引的方法,包括步骤:由当前全量索引和活跃增量索引为用户提供数据服务,基于新获取的数据更新元数据和活跃增量索引,在触发时刻触发创建新全量索引,以便利用该触发时刻对应的元数据来创建新全量索引,利用在该触发时刻与新全量索引创建完成时刻的期间新获取的数据更新元数据、活跃增量索引和备份增量索引,以及在新全量索引创建完成之后,将新全量索引设置为当前全量索引,交换活跃和备份增量索引,并由新设置的当前全量索引和活跃增量索引为用户提供数据服务。本发明专利技术还提供了一种对应的系统和计算设备。

A data index system and method

【技术实现步骤摘要】
一种数据索引系统和方法
本专利技术涉及数据查询领域,尤其涉及通过数据索引为用户提供数据查询服务的

技术介绍
随着互联网时代的到来,热点新闻和娱乐头条等信息地传播越来越广,为了便于人们查找筛选自已喜欢的内容,搜索引擎应运而生。在满足人们搜索需求的同时,搜索引擎面临着大量用户的搜索需求,最高可达每秒几千甚至几万次点击。为了满足用户的搜索需求,在搜索引擎内部通常会提供数据索引服务。这种数据索引通常为倒排索引,这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址,在倒排索引中,不是由记录来确定属性值,而是由属性值来确定记录的位置。这种倒排索引适于在搜索引擎内部使用,即可以将用户的搜索请求转化为一个或者多个属性值,然后根据数据索引获得具有各属性值的记录地址如网页URL等,随后返回搜索结果。由于搜索引擎一方面为用户提供搜索服务,另一方面又需要从网上获取最新的网页内容,所以为了保证搜索引擎搜索数据的实时性,需要对其中的数据索引进行更新。在现有技术中所采用的索引更新策略有两种:1.完全重建策略,即当新抓取的文档达到一定数量时,将新增文档和原先的老文档进行合并,然后对所有文档重新建立索引。新索引建立完成后,老的索引被遗弃释放,之后对用户查询的响应完全由新的索引负责。这种策略存在的问题在于,新抓取的文档不能实时在索引中体现,导致搜索数据不够及时,另外,在创建索引期间的文档可能不能被索引到,导致数据不一致。2.再合并策略:有新增文档进入搜索系统时,搜索系统在内存维护临时倒排索引来记录其信息,当新增文档达到一定数量,或者指定大小的内存被消耗完,则把临时索引和老文档的倒排索引进行合并,以生成新的索引。这种策略的问题在于,随着索引文件变大,构造一个新的索引需要大量的时间和资源,在构造索引文件期间新增的文档不能在新索引中体现,这样也会导致搜索数据不够及时,同时也会导致索引结果不一致的问题。以上几种策略虽然都可以在通过索引切换来持续为用户提供准确的结果,但是没有考虑到随着网络数据的增加,构造新索引期间也会有新增的网络数据,这会导致网络数据不会在索引结果中体系出来,从而产生不能尽量实时地获得包括新文档的搜索结果的实时性问题。为此,需要一种新的数据索引提供方案,可以在进行索引切换的同时,保证数据索引更新的一致性和实时性。
技术实现思路
为此,本专利技术提供了一种新的数据索引方案,以力图解决或者至少缓解上面存在的至少一个问题。根据本专利技术的一个方面,提供了一种数据索引的方法,该方法包括步骤:由当前全量索引和活跃增量索引为用户提供数据服务,基于新获取的数据更新元数据和活跃增量索引,在触发时刻触发创建新全量索引,以便利用该触发时刻对应的元数据来创建新全量索引,利用在该触发时刻与新全量索引创建完成时刻之间的期间新获取的数据更新元数据、活跃增量索引和备份增量索引,以及在新全量索引创建完成之后,将新全量索引设置为当前全量索引,交换活跃和备份增量索引,并由新设置的当前全量索引和活跃增量索引为用户提供数据服务。可选地,根据本专利技术的方法还包括:重复上述更新元数据和活跃增量索引,触发创建新全量索引,利用在触发时刻与新全量索引创建完成时刻期间新获取的数据更新所述元数据、活跃增量索引和备份增量索引,以及新设置当前全量索引、活跃和备份增量索引的步骤。可选地,在根据本专利技术的方法中,触发时刻设置为在新设置了当前全量索引之后的预定时刻,或者设置为活跃增量索引达到预定数据量时的那个时刻。可选地,数据索引包括数据属性值和数据存储位置之间的对应关系,根据本专利技术的方法还包括步骤:从新获取的数据中提取数据属性值和数据存储位置,而利用新获取的数据更新元数据和增量索引的步骤包括:将所提取的数据属性值和数据存储位置写入到元数据和活跃增量索引中。可选地,在根据本专利技术的方法中,新获取的数据包括网络内容,数据存储位置包括该网络内容对应的网络链接,以及该数据属性值包括从该网络内容中提取的数据属性。可选地,在根据本专利技术的方法中,在触发时刻与新全量索引创建完成时刻期间更新所述备份增量索引的步骤包括:在更新备份增量索引之前,清空备份增量索引中的内容。可选地,在根据本专利技术的方法中,由当前全量索引和活跃增量索引为用户提供数据服务的步骤包括:接收包括要查询的数据属性值的用户请求,从当前全量索引获取与所查询的数据属性值相对应的第一数据存储位置,从活跃增量索引获取与所查询的数据属性值相对应的第二数据存储位置,以及合并第一数据存储位置和第二数据存储位置以便将合并后的数据存储位置作为结果返回给用户。可选地,根据本专利技术的方法还包括步骤:统计用户请求,以获取查询次数超过预定数量的热门请求列表;在基于元数据创建新全量索引期间,对于热门请求列表中的每个请求,预先从新全量索引中获取相对应的第一数据存储位置;以及缓存热门请求列表和所获取的相应第一数据存储位置,以便在将新全量索引设置为当前全量索引之后使用。可选地,在根据本专利技术的方法中,由当前全量索引和活跃增量索引为用户提供数据服务的步骤包括:如果用户请求在热门请求列表中,则从缓存中获取所述第一数据存储位置,否则从当前全量索引中获取所述第一数据存储位置。可选地,在根据本专利技术的方法中,增量索引包括奇数增量索引和偶数增量索引,当奇数增量索引被设置为活跃增量索引时,偶数增量索引被设置为备份增量索引;以及当偶数增量索引被设置为活跃增量索引时,奇数增量索引被设置为备份增量索引。根据本专利技术的另一个方面,还提供了一种数据索引系统,该系统包括:数据存储单元,其中存储元数据;索引存储单元,存储当前全量索引、活跃增量索引以及备份增量索引;增量索引更新单元,适于基于新获取的数据更新元数据和活跃增量索引;全量索引构建单元,适于在触发时刻触发创建新全量索引,以便利用触发时刻对应的元数据来创建新全量索引;索引切换单元,适于在新全量索引创建完成之后,将新全量索引设置为当前全量索引,交换活跃和备份增量索引,并由新设置的当前全量索引和活跃增量索引为用户提供数据索引;以及该增量索引更新单元适于在触发时刻与新全量索引创建完成时刻之间的期间,利用该期间新获取的数据更新元数据、活跃增量索引和备份增量索引。根据本专利技术的还有一个方面,还提供了一种计算设备。该计算设备包括至少一个处理器和存储有程序指令的存储器,其中,程序指令被配置为适于由至少一个处理器执行并包括用于执行上述提供数据服务方法的指令。根据本专利技术的数据索引方案,可以通过全量索引创建过程中双写活动和备份增量索引,保证实时更新的索引数据在两种类型的增量索引中都存在,全量索引创建并分发成功后,切换活动和备份增量索引并停止双写增量索引,保证了索引数据的一致性。另外,根据本专利技术的方案,对用户查询频繁的检索语句在全量索引创建并分发完成时做了一次预热,保证热门查询结果已经缓存过,从而进一步提高了搜索服务的实时性。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所本文档来自技高网
...

【技术保护点】
1.一种数据索引的方法,包括:/n由当前全量索引和活跃增量索引为用户提供数据服务,所述当前全量索引基于元数据创建得到,所述活跃增量索引由在基于所述元数据创建所述全量索引期间新获取的数据更新得到;/n基于新获取的数据更新所述元数据和所述活跃增量索引;/n在触发时刻触发创建新全量索引,以便利用所述触发时刻对应的元数据来创建所述新全量索引;/n在所述触发时刻与所述新全量索引创建完成时刻之间的期间,利用该期间新获取的数据更新所述元数据、所述活跃增量索引和备份增量索引;以及/n在新全量索引创建完成之后,将所述新全量索引设置为所述当前全量索引,将所述活跃和备份增量索引分别设置为所述备份和活跃增量索引,并由所述新设置的当前全量索引和活跃增量索引为用户提供数据服务。/n

【技术特征摘要】
1.一种数据索引的方法,包括:
由当前全量索引和活跃增量索引为用户提供数据服务,所述当前全量索引基于元数据创建得到,所述活跃增量索引由在基于所述元数据创建所述全量索引期间新获取的数据更新得到;
基于新获取的数据更新所述元数据和所述活跃增量索引;
在触发时刻触发创建新全量索引,以便利用所述触发时刻对应的元数据来创建所述新全量索引;
在所述触发时刻与所述新全量索引创建完成时刻之间的期间,利用该期间新获取的数据更新所述元数据、所述活跃增量索引和备份增量索引;以及
在新全量索引创建完成之后,将所述新全量索引设置为所述当前全量索引,将所述活跃和备份增量索引分别设置为所述备份和活跃增量索引,并由所述新设置的当前全量索引和活跃增量索引为用户提供数据服务。


2.如权利要求1所述的方法,其中所述触发时刻设置为在新设置了所述当前全量索引之后的预定时刻,或者设置为活跃增量索引达到预定数据量的那个时刻。


3.如权利要求1或者2所述的方法,其中所述数据索引包括数据属性值和数据存储位置之间的对应关系,所述方法还包括:
从新获取的数据中提取数据属性值和数据存储位置;以及
所述利用新获取的数据更新元数据和增量索引的步骤包括:
将所提取的数据属性值和数据存储位置写入到所述元数据和所述活跃增量索引中。


4.如权利要求3所述的方法,其中:
所述新获取的数据包括网络内容,所述数据存储位置包括与所述网络内容对应的网络链接,以及所述数据属性值包括从所述网络内容中提取的数据属性。


5.如权利要求1-4中任一所述的方法,其中所述在触发时刻与所述新全量索引创建完成时刻期间更新所述备份增量索引的步骤包括:
在更新所述备份增量索引之前,清空所述备份增量索引中的内容。


6.如权利要求1-5中任一所述的方法,其中所述由当前全量索引和活跃增量索引为用户提供数据服务步骤包括:
接收用户请求,所述用户请求包括要查询的数据属性值;
从所述当前全量索引获取与所查询的数据属性值相对应的第一数据存储位置;
从所述活跃增量索引获取与所查询的数据属性值相对应的第二数据存储位置;以及
合并所述第一数据存储位置和第二数据存储位置,以便将合并后的数据存储位置作为结果返回给用户。


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


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


9.如权利要求1-8中任一个所述的方法,其中增量索引包括奇数增量索引和偶数增量索引,当所述奇数增量索引被设置为所述活跃增量索引时,所述偶数增量索引被设置为所述备份增量索引;以及当所述偶数增量索引被设置为所述活跃增量索引时,所述奇数增量索引被设置为所述备份增量索引。


10.一种数据索引系统,包括:
数据存储单元,其中存储元数据;
索引存储单元...

【专利技术属性】
技术研发人员:顾朝媛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1