关系型数据的搜索方法和装置制造方法及图纸

技术编号:9406281 阅读:66 留言:0更新日期:2013-12-05 06:08
本发明专利技术公开了一种关系型数据的搜索方法和装置。本发明专利技术实施例提供的一种关系型数据的搜索方法包括:设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的Key;当接收到的搜索条件中存在相应的索引时,根据索引和路由配置确定该搜索条件所对应的索引内存,当接收到的搜索条件中不存在相应的索引时,随机选取索引内存;根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识;利用搜索描述标识获取相应的Key,并通过所获取到的Key得到关系型数据的值Value。本方案能够应用于各种对关系型数据进行搜索的场合。

【技术实现步骤摘要】
关系型数据的搜索方法和装置
本专利技术涉及数据处理
,特别涉及一种关系型数据的搜索方法和装置。
技术介绍
关系型数据库是以关系模型为基础建立的数据库,由于能够较好的模拟现实世界中各种实体以及实体之间的关系而得到了广泛的应用。而如何从关系型数据库中快速检索到所需的数据一直是业界研究的重要课题之一。为了提高检索效率,往往会为数据库建立索引,由查询条件利用索引来快速锁定查询数据范围,最终返回查询结果。目前市场流行的一种检索方案为采用结构化查询语言(SQL)进行检索,在进行数据检索时,输入各种不同的关系条件,此关系条件将生成SQL语句的where条件,由SQL语句完成检索并将结果返回给系统。然而,这种SQL检索方案过度依赖数据库,当数据库压力达到瓶颈时,大量的SQL查询会造成数据库缓慢最终造成数据检索缓慢。对于上述SQL检索的缺陷,业界又提出了一种采用memcache,redis等高性能内存缓存数据方案,支持键-值(Key-Value)的关系型数据。在进行数据检索时,根据键Key获取内存中此键对应的数据,提高了访问性能。然而,这种检索方案仅支持Key与Value这种一对一的查询方式,无法根据查询条件获取查询结果,查询方式不灵活。
技术实现思路
本专利技术提供的一种关系型数据的搜索方法和装置,以解决现有方案数据库检索时速度缓慢以及内存检索时查询方式不灵活的问题。为达到上述目的,本专利技术实施例采用了如下技术方案:本专利技术实施例提供了一种关系型数据的搜索方法,设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的键Key,所述方法包括:当接收到的搜索条件中存在相应的索引时,根据该索引和所述路由配置确定该搜索条件所对应的至少一个索引内存,当接收到的搜索条件中不存在相应的索引时,将任意索引内存确定为该搜索条件所对应的索引内存;根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识,其中,所述索引内存中存储搜索描述标识及相对应的Key,所述搜索描述标识是由搜索条件的数字编码生成的;利用搜索描述标识获取相应的Key,并通过所获取到的Key得到关系型数据的值Value。本专利技术实施例还提供了一种关系型数据的搜索装置,所述装置包括分布式构建单元、索引搜索单元和数据获取单元,其中,所述分布式构建单元,用于设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的键Key,所述索引内存中存储搜索描述标识及相对应的Key,所述搜索描述标识是由搜索条件的数字编码生成的;所述索引搜索单元,用于当接收到的搜索条件中存在相应的索引时,根据该索引和所述路由配置确定该搜索条件所对应的至少一个索引内存,当接收到的搜索条件中不存在相应的索引时,将任意索引内存确定为该搜索条件所对应的索引内存;以及,根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识;所述数据获取单元,用于利用搜索描述标识获取相应的Key,并通过所获取到的Key得到关系型数据的值Value。本专利技术实施例的有益效果是:本专利技术实施例通过直接访问内存提高了数据搜索的速度,并且能够实现根据搜索条件对内存中关系型数据的搜索,显著提高了搜索方式的灵活性,能够满足各种数据搜索场景的需求。并且,本方案采用一种分布式的结构,能够在多个索引内存分别执行相应数据的搜索,均衡了系统中的数据处理负荷,有助于提高数据搜索速度和系统性能。附图说明图1为本专利技术实施例一提供的一种关系型数据的搜索方法流程图;图2为本专利技术实施例三提供的一种关系型数据的搜索装置结构示意图;图3为本专利技术实施例三提供的应用关系型数据的搜索装置的系统结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术实施例的技术构思在于选择某一搜索条件或者组合搜索条件来建立索引,将所建立的索引存储在内存(索引内存)中。由于当关系型数据容量较大时,索引容量也会较大,为实现扩容,建立配置表作为索引的路由配置,也就是将某一个索引对应存储到某一索引内存中;而当某一索引内存访问压力巨大或者其存储的索引超过内存上限时,也需要实现扩容,则将某一索引分别存储在多个索引内存中,这样就完成了分布式搜索系统的构建,当然此系统也支持根据索引和关系型数据的键值进行更新索引。参见图1,为本专利技术实施例一提供的一种关系型数据的搜索方法,所述方法包括:11:设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的键(Key);12:判断当前接收到的搜索条件中是否存在相应的索引,若是,执行步骤13a,若否,执行步骤13b;13a:当接收到的搜索条件中存在相应的索引时,根据该索引和所述路由配置确定该搜索条件所对应的至少一个索引内存,进入步骤14。13b:当接收到的搜索条件中不存在相应的索引时,将任意一个或多个索引内存确定为该搜索条件所对应的索引内存,进入步骤14。14:根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识,然后进入步骤15;其中,所述索引内存中存储搜索描述标识及相对应的Key,所述搜索描述标识是由搜索条件的数字编码生成的。15:利用搜索描述标识获取相应的Key,并通过所获取到的Key得到关系型数据的值(Value)。在上述步骤14中,也可能出现根据搜索条件无法从所确定的索引内存中提取出符合条件的搜索描述标识的情况,这时,可以直接返回失败消息,在此,本专利技术各实施例中主要对所关注的能够根据搜索条件提取出符合条件的搜索描述标识的情况进行说明。下面对本专利技术实施例二提供的关系型数据的搜索方法进行具体说明。本专利技术实施例以关系型数据存储用户信息的场景为例进行说明,该场景中的Key为用户标识(UseId),Value为用户资料。用户资料可以按照最近最少使用(LRU)方式存储在数据内存中。本实施例兼容现有的memcache,redis等存储方式,可以通过UseId定位到存储相应Value的数据内存(如数据内存服务器),从而获取到单个用户的资料。21:设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置将关系型数据的键(Key)存储在对应的索引内存中。根据关系型数据的内容不同,所采用的搜索条件也不同,在本实施例中,搜索条件可以包括用户所属的“国家”、“省份”、“城市”、“年龄范围”、“性别”、“在线状态”等,则可以设置数字编码1-1024分别标识不同“城市”,每一个数字代表一个城市,相似的,数字编码1-64分别标识不同“省份”,数字编码1-16分别标识不同“国家”,数字编码1(男)和2(女)分别标识不同“性别”等等。在利用至少一个搜索条件的数字编码生成索引时,可以直接将一个搜索条件的数字编码直接作为索引,也可以将多个搜索条件的数字编码组合起来作为索引,组合方式可以为合并或排除等方式,如将搜索条件1的数字编码和搜索条件2的数字编码合并在一起作为索引,即该索引能够标识所有同时满足搜索条件1和搜索条件2的key,或者,将具有搜索条件1本文档来自技高网...
关系型数据的搜索方法和装置

【技术保护点】
一种关系型数据的搜索方法,其特征在于,设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的键Key,所述方法包括:当接收到的搜索条件中存在相应的索引时,根据该索引和所述路由配置确定该搜索条件所对应的至少一个索引内存,当接收到的搜索条件中不存在相应的索引时,将任意索引内存确定为该搜索条件所对应的索引内存;根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识,其中,所述索引内存中存储搜索描述标识及相对应的Key,所述搜索描述标识是由搜索条件的数字编码生成的;利用搜索描述标识获取相应的Key,并通过所获取到的Key得到关系型数据的值Value。

【技术特征摘要】
1.一种关系型数据的搜索方法,其特征在于,设置与各搜索条件对应的数字编码,利用至少一个搜索条件的数字编码生成索引,根据索引和路由配置在多个索引内存中存储关系型数据的键(Key),所述方法包括:当接收到的搜索条件中存在相应的索引时,根据该索引和所述路由配置确定该搜索条件所对应的至少一个索引内存,当接收到的搜索条件中不存在相应的索引时,将任意索引内存确定为该搜索条件所对应的索引内存;根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识,其中,所述索引内存中存储搜索描述标识及相对应的键(Key),所述搜索描述标识是由搜索条件的数字编码生成的;利用搜索描述标识获取相应的键(Key),并通过所获取到的键(Key)得到关系型数据的值(Value)。2.根据权利要求1所述的方法,其特征在于,所述根据索引和路由配置在多个索引内存中存储关系型数据的键(Key)包括:根据索引和路由配置确定键(Key)所属于的索引内存组;将符合所述索引对应的搜索条件的键(Key)存储在所确定的索引内存组中,其中,当所述索引内存组中包含的索引内存的数量为二个以上时,按照所述索引内存组中索引内存的数量对键(Key)进行取模运算,以确定存储该键(Key)的索引内存。3.根据权利要求1所述的方法,其特征在于,通过如下方式由搜索条件的数字编码生成所述搜索描述标识:将搜索条件的数字编码转换为比特;将所述比特按照预定顺序组合生成搜索条件的搜索描述标识。4.根据权利要求1所述的方法,其特征在于,所述根据接收到的搜索条件从所确定的索引内存中提取符合条件的搜索描述标识包括:从索引内存中提取与接收到的搜索条件的搜索描述标识相一致的搜索描述标识的集合;根据接收到的选取指令从所述集合中选取所需的搜索描述标识。5.根据权利要求4所述的方法,其特征在于,所述从索引内存中提取与接收到的搜索条件的搜索描述标识相一致的搜索描述标识的集合包括:当所确定的索引内存的数量为二个以上时,在所确定的索引内存中,先从任一索引内存中提取符合条件的搜索描述标识的集合,当该索引内存中不存在符合条件的搜索描述标识且所述选取指令指示继续提取操作时,再更换用于提取搜索描述标识的索引内存。6.根据权利要求1所述的方法,其特征在于,在通过所获取到的键(Key)得到关系型数据的值(Value)之后,所述方法还包括...

【专利技术属性】
技术研发人员:蔡良木
申请(专利权)人:北京神州泰岳软件股份有限公司
类型:发明
国别省市:

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

1