一种生成索引文档id的方法及装置的制造方法

文档序号:9288458阅读:441来源:国知局
一种生成索引文档id的方法及装置的制造方法
【技术领域】
[0001]本公开涉及数据库技术领域,尤其涉及一种生成索引文档ID的方法及装置。
【背景技术】
[0002]近年来,数据库得到越来越广泛的应用,其中索引作为数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
[0003]在数据库中,索引相对于数据库的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当数据库中有大量记录时,若要对数据库进行查询,若采用非索引的方式搜索,需要将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,会消耗大量数据库系统时间,导致大量磁盘I/O操作;若采用索引的方式搜索,在索引中找到符合查询条件的索引值,可快速找到数据库中对应的记录。数据库中增加新的数据,不仅需要更新数据库本身,还需要更新与数据库对应的索引。
[0004]处理索引文档之前,需要对索引文档进行编号,以便在后续的处理过程中,准确的区分不同索引文档。现有的生成索引文档ID的方法是根据分表序号、该分表所在的服务器序号和该分表中已有的最大索引文档ID来计算的。现有生成索引文档ID的无法保证所有的索引文档ID都是连续的,也无法根据索引文档ID就可推测出该索引文档与该索引文档所对应的分表之间的联系。

【发明内容】

[0005]本发明提供一种生成索引文档ID的方法及装置,用于对索引文档进行编号,以便后续的处理。
[0006]根据本公开实施例的第一方面,提供一种生成索引文档ID的方法,包括:
[0007]接收由客户端发送来的文件;
[0008]存储所述文件的信息,所述文件的信息分布在至少一个服务器中,每个服务器有至少一个分表;
[0009]获取存储的所有分表的数量、各个所述分表的序号和循环处理的次数;
[0010]根据所述所有分表的数量、所述各个分表的序号和所述循环处理的次数,计算所述文件的索引文档ID。
[0011]在一个实施例中,所述根据所述所有分表的数量、所述各个分表的序号和所述循环处理的次数,计算所述文件的索引文档ID,包括:
[0012]根据以下公式计算索引文档ID:
[0013]ID = idxldXidstep+idflag,
[0014]其中,符号ID为所述索引文档ID,符号idxld为循环处理的次数,符号idstep为所有分表的数量,符号idflag为各个分表的序号;
[0015]所述符号idxld在每生产一个索引文档ID后增加一;
[0016]所述文件的索引文档ID的初始值为0,表示所述文件未被处理。
[0017]在一个实施例中,在生成所述索引文档ID之前,还包括:
[0018]根据哈希算法依此计算所述文件的哈希值;
[0019]根据所述哈希值将所述文件匹配到相对应的所述分表。
[0020]在一个实施例中,所述根据所述哈希值将所述文件匹配到相对应的所述分表,包括:
[0021]将所述哈希值的整个取值范围均等的划分为多个数值区间,所述多个数值区间的数量和所有所述分表的数量相同,且所述数值区间与所述分表对应;
[0022]将所述文件的哈希值在某一个数值区间段内的所有所述文件,匹配到同一个所述分表。
[0023]在一个实施例中,每个所述分表都拥有各自独立的所述循环处理的次数。
[0024]根据本公开实施例的第二方面,提供一种生成索引文档ID的装置,包括:
[0025]接收模块,用于接收由客户端发送来的文件;
[0026]存储模块,用于存储所述文件的信息,所述文件的信息分布在至少一个服务器中,每个服务器有至少一个分表;
[0027]获取模块,用于获取存储的所有分表的数量、各个所述分表的序号和循环处理的次数;
[0028]第一计算模块,用于根据所述所有分表的数量、所述各个分表的序号和所述循环处理的次数,计算所述文件的索引文档ID。
[0029]在一个实施例中,所述第一计算模块,包括:
[0030]计算子模块,用于根据以下公式计算索引文档ID:
[0031]ID = idxldXidstep+idflag,
[0032]其中,符号ID为所述索引文档ID,符号idxld为循环处理的次数,符号idstep为所有分表的数量,符号idflag为各个分表的序号;
[0033]自增子模块,用于所述符号idxld在每生产一个索引文档ID后增加一;
[0034]在一个实施例中,生成所述索引文档ID之前,所述装置还包括:
[0035]第二计算模块,用于根据哈希算法依此计算所述文件的哈希值;
[0036]匹配模块,用于根据所述哈希值将所述文件匹配到相对应的所述分表。
[0037]在一个实施例中,所述匹配模块,包括:
[0038]划分子模块,用于将所述哈希值的整个取值范围均等的划分为多个数值区间,所述多个数值区间的数量和所有所述分表的数量相同,且所述数值区间与所述分表一一对应;
[0039]匹配子模块,用于将所述文件的哈希值在某一个数值区间段内的所有所述文件,匹配到同一个所述分表。
[0040]本公开的实施例提供的技术方案可以包括以下有益效果:可将所有文件均匀的匹配到各个分表,生成的索引文档ID唯一且索引文档ID的数值是连续的,且可根据索引文档ID推断出该索引文档对应的具体分表及该索引文档是在该分表中的第多少条记录信息。
[0041]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0042]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0043]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0044]图1为本发明一示例性实施例示出的一种生成索引文档ID的方法流程图;
[0045]图2为本发明一示例性实施例示出的一种生成索引文档ID的方法流程图;
[0046]图3为本发明一示例性实施例示出的一种生成索引文档ID的方法流程图;
[0047]图4为本发明一示例性实施例示出的一种生成索引文档ID的方法流程图;
[0048]图5为本发明一示例性实施例示出的一种生成索引文档ID的装置框图;
[0049]图6为本发明一示例性实施例示出的一种生成索引文档ID的装置框图;
[0050]图7为本发明一示例性实施例示出的一种生成索引文档ID的装置框图;
[0051]图8为本发明一示例性实施例示出的一种生成索引文档ID的装置框图。
【具体实施方式】
[0052]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0053]在数据库中处理索引文档之前,需要对索引文档进行编号,即生成索引文档ID,以便在后续的处理过程中准确的区分出不同的索引文档。为了使各分表处理的索引数据量均衡,采用哈希算法对索引文档计算出该文件相应的哈希值,该哈希值是存在一个数值取值范围的。根据数据所拥有分表的数量,将该哈希值的取值范围均等的划分为若干哈希数值小区间,该小区间的数量与分表的数量相同,并每个分表分别对应一个哈希数值小区间,将落在同一个哈希数值小区间的文件匹配到同一个分表中。哈希算法的特性可以确保每个哈希数值区间所匹配到的哈希数值的数量均等性,即保证每个分表所对应的索引文档的数量均等性。根据本申请中的生成索引文档ID的计算公式,利用各个分表中循环处理的次数、所有分表的数量和各个分表的序号,计算出各个索引文档的索引文档ID。
[0054]图1是根据一示例性实施例示出的一种生成索引文档ID的方法流程图,如图1所示,该生成
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1