检索方法及装置制造方法及图纸

技术编号:21832507 阅读:32 留言:0更新日期:2019-08-10 17:56
本发明专利技术提供了一种检索方法及装置,涉及数据库的技术领域,上述方法方法应用于服务器;服务器设置有关系型数据库,包括:获取用户输入的检索词或检索语句;根据检索词或分词器对检索语句分词后生成的初始检索词集合,从关系型数据库的原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合;从键值对数据库中获取筛选后的检索词集合中的各个检索词对应的字段名和表名;通过筛选后的检索词集合和各个检索词对应的字段名和表名生成每个表名对应的查询指令;通过查询指令在每个表名对应的表中查询得到返回结果;根据每个表名对应的返回结果,确定检索词对应的检索结果。本发明专利技术可以提高检索方法的适用性,降低检索方法的复杂度。

Retrieval methods and devices

【技术实现步骤摘要】
检索方法及装置
本专利技术涉及数据库
,尤其是涉及一种检索方法及装置。
技术介绍
关系型数据库就是二维表及其之间的联系组成的一个数据组织,其中的表具有固定的表结构,表中的数据为结构化数据。由于其容易理解、使用方便、易于维护、具有事务的一致性等特点,成为数据库应用的主流。然而,缺点是由于关系型数据库具有固定的表结构,正常情况下的查询都需要指定查询内容和与内容相关的字段,对于检索、搜索类查询需求并不擅长。现实中存在这样的一些企业,他们的数据存放在关系型数据库中但他们也有相关业务需要检索、搜索类查询。现有的关系型数据库全文检索方法,可以通过对索引目录的操作来实现对检索词的匹配,这种方法实现上较为繁琐,开发人员不易上手;或者基于开源插件gptext通过创建倒排索引的方式来实现对greemplum数据库的全文检索,但是不能适用于其他的不支持gptext的关系型数据库,适用性差;或者对检索请求进行拆分,但是由于拆分方式的差异性,会增加操作的复杂度,在对复杂检索请求进行拆分时,往往会力不从心,难以拆分。针对上述现有技术中存在关系型数据库全文检索方法复杂度高、适用性差的问题,目前尚未提出有效解决方案。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种检索方法及装置,以提高检索方法的适用性,降低检索方法的复杂度。第一方面,本专利技术实施例提供了一种检索方法,方法应用于服务器;服务器设置有关系型数据库,方法包括:获取用户输入的检索词或检索语句;根据检索词或分词器对检索语句分词后生成的初始检索词集合,从关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合;键值对数据库中的键为关系型数据库的映射表中指定的一个用于检索的字段对应的值;键对应的值为映射表中指定的一个用于检索的字段对应的值在原表中对应的字段名和表名;从键值对数据库中获取筛选后的检索词集合对应的字段名和表名;通过筛选后的检索词集合和各个检索词对应的字段名和表名生成每个表名对应的查询指令;通过查询指令在每个表名对应的表中查询得到返回结果;根据每个表名对应的返回结果,确定检索词对应的检索结果。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,根据检索词或分词器对检索语句分词后生成的初始检索词集合,从关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合的步骤,包括:获取待检索的关系型数据库中每个原表的数据;根据每个原表的数据创建每个原表的索引和映射表;加载映射表到键值对数据库;将检索词的集合中的每一个检索词作为键值对数据库的键去键值对数据库里面查询该键对应的值,如果对应的值不为空,则返回对应的值不为空的键值对,最终所有对应的值不为空的键值对的键组成的集合即为筛选后的检索词集合。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,根据每个原表的数据创建每个原表的索引和映射表的步骤,包括:针对每个原表,使用每个原表中供查询的字段创建索引;根据当前原表的数据创建当前原表的映射表;其中,映射表包括:每个原表中供查询的字段名、供查询的字段对应的值和供查询的字段所在原表的表名。结合第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,根据当前原表的数据创建当前原表的映射表的步骤之后,方法还包括:将供查询的字段对应的值在去重后输入映射表的指定的一个用于检索的字段中。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,获取用户输入的检索词或检索语句的步骤,包括:接收用户输入的检索语句;根据预设的分词库,对检索语句进行分词处理,得到检索语句中的初始检索词集合;预设的分词库包含有每个原表中供查询的字段的值。结合第一方面,本专利技术实施例提供了第一方面的第五种可能的实施方式,其中,根据每个表名对应的返回结果,确定检索词对应的检索结果的步骤,包括:根据每条返回结果携带的检索词和分词器分词后生成的总的检索词的相关度,确定匹配程度;根据匹配程度的大小,对匹配程度进行排序,确定检索结果。结合第一方面的第五种可能的实施方式,本专利技术实施例提供了第一方面的第六种可能的实施方式,其中,根据每条返回结果携带的检索词和分词器分词后生成的总的检索词的相关度,确定匹配程度的步骤,包括:通过以下算式根据每条返回结果携带的检索词和分词器分词后生成的总的检索词的相关度,确定匹配程度:其中,I为匹配程度;N1为每条检索结果携带的检索词个数;N2为分词器分词后生成的检索词集合中检索词的总个数。第二方面,本专利技术实施例还提供一种检索装置,装置应用于服务器;服务器设置有关系型数据库,装置包括:检索词输入模块,用于获取用户输入的检索词或检索语句;筛选后的检索词模块,用于根据检索词或分词器对检索语句分词后生成的初始检索词集合,从关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合;键值对数据库中的键为关系型数据库的映射表中指定的一个用于检索的字段对应的值;键对应的值为映射表中指定的一个用于检索的字段对应的值在原表中对应的字段名和表名;字段名和表名模块,用于从键值对数据库中获取筛选后的检索词集合对应的字段名和表名;查询指令生成模块,用于通过筛选后的检索词集合和各个检索词对应的字段名和表名生成每个表名对应的查询指令;返回结果生成模块,用于通过查询指令在每个表名对应的表中查询得到返回结果;检索结果生成模块,用于根据每个表名对应的返回结果,确定检索词对应的检索结果。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,筛选后的检索词模块,还用于:获取待检索的关系型数据库中每个原表的数据;根据每个原表的数据创建每个原表的索引和映射表;加载映射表到键值对数据库;将检索词的集合中的每一个检索词作为键值对数据库的键去键值对数据库里面查询该键对应的值,如果对应的值不为空,则返回对应的值不为空的键值对,最终所有对应的值不为空的键值对的键组成的集合即为筛选后的检索词集合。结合第二方面的第一种可能的实施方式,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,筛选后的检索词模块,还用于:针对每个原表,使用每个原表中供查询的字段创建索引;根据当前原表的数据创建当前原表的映射表;其中,映射表包括:每个原表中供查询的字段名、供查询的字段对应的值和供查询的字段所在原表的表名。本专利技术实施例带来了以下有益效果:本专利技术实施例提供的检索方法及装置,将用户输入的检索词匹配用于检索的关系型数据库中原表的映射表对应的键值对数据库中,不依赖开源产品的倒排索引技术,能够更为简单快捷地实现对关系型数据库的检索,可以提高检索方法的适用性,降低检索方法的复杂度。本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本文档来自技高网...

【技术保护点】
1.一种检索方法,其特征在于,所述方法应用于服务器;所述服务器设置有关系型数据库,所述方法包括:获取用户输入的检索词或检索语句;根据所述检索词或分词器对所述检索语句分词后生成的初始检索词集合,从所述关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合;所述键值对数据库中的键为所述关系型数据库的映射表中指定的一个用于检索的字段对应的值;所述键对应的值为所述映射表中指定的一个用于检索的字段对应的值在原表中对应的字段名和表名;从所述键值对数据库中获取所述筛选后的检索词集合对应的字段名和表名;通过所述筛选后的检索词集合和各个检索词对应的字段名和表名生成每个表名对应的查询指令;通过所述查询指令在每个所述表名对应的表中查询得到返回结果;根据每个所述表名对应的返回结果,确定所述检索词对应的检索结果。

【技术特征摘要】
1.一种检索方法,其特征在于,所述方法应用于服务器;所述服务器设置有关系型数据库,所述方法包括:获取用户输入的检索词或检索语句;根据所述检索词或分词器对所述检索语句分词后生成的初始检索词集合,从所述关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合;所述键值对数据库中的键为所述关系型数据库的映射表中指定的一个用于检索的字段对应的值;所述键对应的值为所述映射表中指定的一个用于检索的字段对应的值在原表中对应的字段名和表名;从所述键值对数据库中获取所述筛选后的检索词集合对应的字段名和表名;通过所述筛选后的检索词集合和各个检索词对应的字段名和表名生成每个表名对应的查询指令;通过所述查询指令在每个所述表名对应的表中查询得到返回结果;根据每个所述表名对应的返回结果,确定所述检索词对应的检索结果。2.根据权利要求1所述的方法,其特征在于,根据所述检索词或分词器对所述检索语句分词后生成的初始检索词集合,从所述关系型数据库中原表的映射表对应的键值对数据库中匹配得到筛选后的检索词集合的步骤,包括:获取待检索的关系型数据库中每个原表的数据;根据所述每个原表的数据创建每个原表的索引和映射表;加载所述映射表到键值对数据库;将所述检索词的集合中的每一个检索词作为键值对数据库的键去键值对数据库里面查询该键对应的值,如果所述对应的值不为空,则返回所述对应的值不为空的键值对,最终所有所述对应的值不为空的键值对的键组成的集合即为筛选后的检索词集合。3.根据权利要求2所述的方法,其特征在于,根据所述每个原表的数据创建每个原表的索引和映射表的步骤,包括:针对每个原表,使用每个所述原表中供查询的字段创建索引;根据当前原表的数据创建所述当前原表的映射表;其中,所述映射表包括:每个所述原表中供查询的字段名、供查询的字段对应的值和所述供查询的字段所在原表的表名。4.根据权利要求3所述的方法,其特征在于,根据当前原表的数据创建所述当前原表的映射表的步骤之后,所述方法还包括:将所述供查询的字段对应的值在去重后输入所述映射表的指定的一个用于检索的字段中。5.根据权利要求2所述的方法,其特征在于,获取用户输入的检索词或检索语句的步骤,包括:接收用户输入的检索语句;根据预设的分词库,对所述检索语句进行分词处理,得到所述检索语句中的初始检索词集合;所述预设的分词库包含有每个所述原表中供查询的字段的值。6.根据权利要求1所述的方法,其特征在于,根据每个所述表名对应的返回结果,确定所述...

【专利技术属性】
技术研发人员:涂腾飞余伟张进
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:重庆,50

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

1