信息查询系统及方法
技术领域
本发明涉及电子信息及计算机应用技术领域,具体涉及信息查询系统及方法。
背景技术
随着电子信息技术及网络技术的快速发展,需要存储、记录和查询的信息越来越多。因此,更快速、更准确的信息检索查询系统成为本行业研究和开发的重点。
中国200610064555.8号发明专利公开了一种快速查询黑白名单的系统及方法,其系统包括:查询单元,用于查询黑白名单中是否包括待检测关键字;还包括:数组创建单元,用于将黑白名单中的所有关键字分别作运算后根据运算值生成数组;数组存储单元,用于存储所述数组创建单元创建的数组;匹配单元,用于将待测试的关键字作运算后将所述待测试的关键字的运算值与所述数组存储单元中的数组进行比对,并在待测试的关键字的运算值与所述数组匹配时,使查询单元查询黑白名单中是否存在待测试的关键字。
上述专利的技术中,具体是通过待测试关键字的哈希值比对后再查询黑白名单,其减少了查询过程中对数据库中黑白名单的访问,实现了快速查询。然而,对于一些关键词比较清晰,要求更快速度获得关键词相应信息的查询系统,则可以简化上述专利技术的数组创建单元和匹配单元的工作,进一步提高查询效率。
发明内容
本发明的目的是提供一种信息查询系统及方法,能够更快速准确地查询到用户想要查找的信息。上述目的由以下技术方案实现:
一种信息查询系统,包括数据库创建装置、数据库及查询装置,其特征在于:
数据库创建装置包括:第一运算模块,用于对每条被存储信息的数据的预设关键词作运算,得到一索引数组;数据存储模块,用于将所述索引数组及其相应的被存储信息的数据存储在数据库;
数据库包括:索引区,用于存储所述索引数组;数据区,用来存储可查询的所有被存储信息的数据;
查询装置包括:关键词输入模块,用于输入查询关键词;第二运算模块,用于对所述查询关键词作运算,得到一查询数组;匹配模块,用于将所述查询数组和所述索引数组进行比对,判断数据库中是否存在与查询关键词匹配的被存储信息数据;信息提取模块,用于将存在的与查询关键词匹配的被存储信息数据读取出来。
作为进一步的技术方案,所述第一运算模块和第二运算模块均包括一个哈希运算单元和一个数组提取单元,哈希运算单元将所述预定关键词或查询关键词运算为一初始数组,数组提取单元提取所述初始数组的一段作为所述索引数组或所述查询数组。
作为进一步的技术方案,所述索引区在所述索引数组相应的位置记录该索引数组下第一条信息数据的偏移值,数据区用来存储可查询的所有被存储信息的数据,并且属于同一索引数组下的前一条数据后记录下一条数据的偏移值,某一条数据后记录的偏移值为“-1”时,则代表该条数据为该索引数组的最后一条信息数据。
一种信息查询方法,包括信息存储的过程和信息查询的过程,其特征在于,
所述信息存储的过程包括以下步骤:(1)预设被存储信息数据的关键词的步骤;(2)根据预设关键词计算得到一索引数组的步骤;(3)将所述索引数组及其对应被存储数据建立指引关系并存储的步骤;(4)重复步骤(1)至(3),将所有被存储信息保存;
所述信息查询的过程包括以下步骤:(a)输入查询关键词的步骤;(b)根据查询关键词计算得到一查询数组的步骤;(c)将所述查询数组与所保存的各索引数组比对的步骤;(d)找到与所述查询数组匹配的索引数组的步骤;(e)提取步骤(d)找到的索引数组对应的被存储信息的步骤。
作为进一步的技术方案,所述步骤(2)中得到一索引数组的具体步骤包括:首先通过哈希算法将所述预定关键词运算为一初始数组,再提取该初始数组的一段作为所述索引数组;所述步骤(b)中得到一查询数组的具体步骤包括:首先通过哈希算法将所述查询关键词运算为一查询初始数组,再提取该查询初始数组的一段作为所述查询数组。
作为进一步的技术方案,所述步骤(3)中将所述索引数组及其对应被存储数据建立指引关系并存储,其具体方法包括:在索引区与所述索引数组相应的地址记录该索引数组下第一条信息数据的偏移值,数据区中属于同一索引数组下的前一条数据后记录下一条数据的偏移值,且某一条数据后记录的偏移值为“-1”时,则代表该条数据为该索引数组的最后一条信息数据。
本发明的有益效果在于:通过选定被存储信息的预设关键词,通过该预设关键词建立数据库的索引及数据区,在查询比对时,通过查询关键词和预设关键词运算后的数组进行比对,大大提升了查询效率,同时保证高的查询准确性,特别适合一些关键词比较清晰,要求更快速度获得关键词相应信息的查询系统。
附图说明
图1为本发明实施例提供的信息查询系统的主体构成框图。
图2为本发明实施例提供的信息查询系统中数据库创建装置的构成框图。
图3为本发明实施例提供的信息查询系统中数据库的构成框图。
图4为本发明实施例提供的信息查询系统中查询装置的构成框图。
图5为本发明实施例提供的一组被存储信息示例图。
图6为本发明实施例针对图5所示信息在数据库中的存储状态图。
图7为本发明实施例提供的信息查询方法中信息存储过程的流程图。
图8为本发明实施例提供的信息查询方法中信息查询过程的流程图。
具体实施方式
如图1所示,本实施例提供的信息查询系统,包括数据库创建装置、数据库及查询装置。
如图2所示,具体地,数据库创建装置包括第一运算模块和一数据存储模块,第一运算模块用于对每条被存储信息的数据的预设关键词作运算,得到一索引数组。例如,一条被存储的信息涉及人名“张三”,那么可以选定“张三”为预设关键词,然后对“张三”做运算(例如采用哈希算法),得到长度为M的一个初始数组,如“123”;之后取M长度初始数组中的N长度作为索引数组,如“12”,结合参阅图5。数据存储模块用于将所述索引数组及其相应的被存储信息的数据存储在数据库,下面结合数据库具体描述数据的存储方式。
如图3所示,数据库包括索引区和数据区,索引区在所述索引数组相应的位置记录该索引数组下第一条信息数据的偏移值,数据区用来存储可查询的所有被存储信息的数据。结合图5及图6举例说明如下,索引数组12下的第一条信息是“张三”对应的数据,索引区地址12处记录存储“张三”对应数据的偏移值,如“0”,则说明“张三”对应数据存储在数据区的最开始;索引数组45下的第一条信息是“李四”对应的数据,索引区地址45处记录存储“李四”对应数据的偏移值,如“10”,则说明“李四”对应数据由数据区地址10开始存储;此外,索引数组12下的第二条信息是“张五”对应的数据,由于“张五”的信息是索引数组12下的第二条,其存储的位置不在索引区直接记录,而是在“张三”对应的数据后记录“张五”对应的数据的偏移值,如“20”,则说明“张五”对应的数据由数据区地址20开始存储。数据区中,索引数组下的某一条数据后记录的偏移值为“-1”时,则代表该条数据为该索引数组的最后一条信息数据,例如“李四”和“张五”的数据后不再有相同索引数组下的其他数据。
如图4所示,查询装置包括关键词输入模块、第二运算模块、匹配模块及信息提取模块。关键词输入模块用于输入查询关键词,例如,输入“张三”。第二运算模块用于对输入的查询关键词作运算(例如采用哈希算法),得到长度为M的一个初始数组,如“123”;之后取M长度初始数组中的N长度作为查询数组,如“12”。匹配模块用于将所述查询数组和所述索引数组进行比对,判断数据库中是否存在与查询关键词匹配的被存储信息数据。信息提取模块用于将存在的与查询关键词匹配的被存储数据读取出来。
基于上述查询系统的查询方法,包括信息存储的过程和信息查询的过程:
如图7所示,所述信息存储的过程包括以下步骤:(1)预设被存储信息数据的关键词的步骤;(2)根据预设关键词计算得到一索引数组的步骤;(3)将所述索引数组及其对应被存储数据建立指引关系并存储的步骤;(4)重复步骤(1)至(3),将所有被存储信息的数据保存。
如图8所示,所述信息查询的过程包括以下步骤:(a)输入查询关键词的步骤;(b)根据查询关键词计算得到一查询数组的步骤;(c)将所述查询数组与所保存的各索引数组比对的步骤;(d)找到与所述查询数组匹配的索引数组的步骤;(e)提取步骤(d)找到的索引数组对应的被存储信息的步骤。
本发明通过选定被存储信息的预设关键词,通过该预设关键词建立数据库的索引及数据区,在查询比对时,通过查询关键词和预设关键词运算后的数组进行比对,大大提升了查询效率,同时保证高的查询准确性,特别适合一些关键词比较清晰,要求更快速度获得关键词相应信息的查询系统。