数据文件的索引查找方法和系统的制作方法

文档序号:8528176阅读:257来源:国知局
数据文件的索引查找方法和系统的制作方法
【技术领域】
[0001]本发明涉及数据存储技术,特别是涉及一种数据文件的索引查找方法和系统。
【背景技术】
[0002]随着互联网应用的发展,越来越多的业务系统存在着海量的日志数据,这些海量的日志数据将被存储于硬盘中,以备日后需要的时候查询使用。
[0003]这些海量的日志数据具备了写入量非常巨大,读取频率相对较低的特点,因此传统的日志数据的存储大都直接存入硬盘中,而不做任何索引,以避免由于索引的存在而带来的写入速度的牺牲,但是,在对写入的日志数据进行查找时由于数据量过大,通常需要数个小时才能查找到所需要的数据,无法在保证高写入速度的前提下提升查找速度。
[0004]而传统的数据索引算法则是牺牲写入速度而达到快速查找的目的,其中,传统的数据索引算法包括了 B树索引算法、倒排索引算法和哈希索引算法等,因此也无法在保证高写入速度的前提下提升查找速度。

【发明内容】

[0005]基于此,有必要提供一种能在高写入速度的前提下提升查找速度的数据文件的索引查找方法。
[0006]此外,还有必要提供一种能在高写入速度的前提下提升查找速度的数据文件的索引查找系统。
[0007]一种数据文件的索引查找方法,包括如下步骤:
[0008]获取进行数据文件查找的关键词;
[0009]读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;
[0010]查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。
[0011]一种数据文件的索引查找系统,包括:
[0012]关键词获取模块,用于获取进行数据文件查找的关键词;
[0013]逻辑块定位模块,用于读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;
[0014]查找模块,用于查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。
[0015]上述数据文件的索引查找方法和系统进行查找时,将获取关键词,读取索引文件,以在索引文件中通过布隆过滤器定位关键词所在的逻辑块,此时与该逻辑块相关联的数据即为所需要的数据,由于不需要对所有的数据进行查找,因此大大提升了查找速度,并且布隆过滤器较为简单,对于数据而言仍然是顺序写入的,保证了高写入速度。
【附图说明】
[0016]图1为一个实施例中数据文件的索引查找方法的流程图;
[0017]图2为图1中读取索引文件,在索引文件中通过布隆过滤器定位关键词所在的逻辑块的方法流程图;
[0018]图3为另一个实施例中数据文件的索引查找方法的流程图;
[0019]图4为一个实施例中数据文件的索引查找方法的应用示意图;
[0020]图5为一个实施例中数据文件的索引查找系统的结构示意图;
[0021]图6为图5中逻辑定位模块的结构示意图;
[0022]图7为另一个实施例中数据文件的索引查找方法的结构示意图;
[0023]图8为一个实施例中可运行前述数据文件的索引查找方法的服务器结构示意图。
【具体实施方式】
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0025]除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组口 ο
[0026]如图1所示,在一个实施例中,一种数据文件的索引查找方法,包括如下步骤:
[0027]步骤S110,获取进行数据文件查找的关键词。
[0028]本实施例中,进行数据文件查找的关键词将是根据当前的数据查找需求而确定的,在这一查找过程中,数据文件即为存储于后台的大批量数据的统称,用户通过一定的关键词对存储于后台的大批量数据进行查找,以得到所需要的数据。
[0029]步骤S130,读取索引文件,在索引文件中通过布隆过滤器定位关键词所在的逻辑块。
[0030]本实施例中,后台将存储索引文件和数据文件,索引文件将为数据文件的快速查找提供索引。具体的,将通过布隆过滤器判断索引文件中是否存在与关键词相符的逻辑块,若为是,则说明与该逻辑块相关联的数据即为包含了关键词的数据,可作为查询结果输出。
[0031]其中,布隆过滤器为Bloomfilter,通过布隆过滤器实现索引文件中逻辑块的遍历,以定位所有与关键词相符的逻辑块。
[0032]步骤S150,查找得到与定位的逻辑块相关联的数据,并输出查找得到的数据。
[0033]本实施例中,每一逻辑块都将与一定的数据相关联,以便于通过索引文件中的逻辑块得到存储于硬盘中的数据。
[0034]通过如上所述的方法,将使得根据关键词所进行的数据查找过程中不需要逐一对后台存储的大批量数据进行逐一查找,只需要在索引文件中进行逻辑块的定位即可,实现了数据的快速查找,并且对于索引文件和数据文件的写入而言,仍然得以保持其顺序写入的特性,进而保证了索引文件和数据文件的快速写入,同时兼顾了优异的写入性能和查找性能。
[0035]如图2所示,在一个实施例中,上述步骤S130的具体过程为:
[0036]步骤S131,读取索引文件,以得到索引文件中包含的若干个逻辑块。
[0037]本实施例中,读取存储的索引文件,将通过索引文件中包含的若干个逻辑块为存储的数据提供索引,索引文件中的每一逻辑块均有与之相关联的数据。
[0038]步骤S133,通过哈希函数对关键词进行计算以得到相应的映射位置。
[0039]本实施例中,预先设置了若干个不同的哈希函数,以分别对关键词进行哈希计算得到一组映射位置,即每一哈希函数均对关键词进行哈希计算得到一映射位置,该映射位置将为数据的查找提供路径。
[0040]预先设置的哈希函数个数将与所允许的最大错误率有关,在优选的实施例中,若需要将错误率维持在千分之一以内,则需要设置10个哈希函数。
[0041]具体的,在通过哈希函数定位关键词所在的逻辑块必然存在着一定的错误率,即f=(l-p)k,其中,k为哈希函数个数,P = e_Wm, kn < m, m为位表中的位数。
[0042]使位表中的一半为空,即元素值为零将有利于保持错误率最低,也就是说,当P为1/2,即k=in2*(m/n)将为最优结果。
[0043]步骤S135,判断映射位置是否与逻辑块中的位表相符,若为是,则进入步骤S137,若
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1