数据检索方法、系统、设备及存储介质与流程

文档序号:21456566发布日期:2020-07-10 17:52阅读:184来源:国知局
数据检索方法、系统、设备及存储介质与流程

本发明涉及数据检索技术领域,尤其涉及一种数据检索方法、系统、设备及存储介质。



背景技术:

在现有技术中,通常的关系型数据库查询是使用对数据库数据对字段构建索引进行搜索上的数据结构优化,使搜索查询更加快速。

但是,随着社会的发展,在需要处理的数据量成倍激增的情况下,系统读写一体会增大数据库的压力,造成系统卡顿崩溃,无法及时响应用户,查询时没有主键只能查询多张表,再做数据剔除,浪费网络资源和数据资源。



技术实现要素:

本发明的主要目的在于解决目前系统数据量过大而造成的系统压力增大,并发时查询能力低而导致用户体验不佳的技术问题。

为实现上述目的,本发明第一方面提供了一种数据检索方法,包括:

接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从源数据库中读取对应的原始数据;

基于所述原始数据,输出检索结果。

可选的,在本发明第一方面的第一种实现方式中,所述接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引包括:

接收用户发起的检索请求,并对所述检索请求进行解析,得到用户查询需求;

提取所述用户查询需求中携带的字段数据,并对所述字段数据进行分词处理,得到对应的索引项;

基于所述索引项,生成指定索引。

可选的,在本发明第一方面的第二种实现方式中,所述数据检索方法还包括通过以下方式构建所述索引映射关系:

从源数据库的内存中获取倒排索引;

对所述倒排索引进行解析,得到索引项;

基于所述索引项,获取所述索引项中携带的字段信息;

根据所述字段信息,生成映射索引;

建立所述映射索引与所述倒排索引之间的索引映射关系。

可选的,在本发明第一方面的第三种实现方式中,所述基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引包括:

检索索引映射关系对应的映射表中是否存在与所述指定索引对应的映射索引;

若存在,则解析所述指定索引,得到所述指定索引中包含的索引项;

以所述索引项作为关键词,利用所述指定索引与所述倒排索引之间的索引映射关系,从内存中查询出与所述指定索引对应的倒排索引。

可选的,在本发明第一方面的第四种实现方式中,所述检索请求中还包含有主键时,所述基于所述原始数据,输出检索结果包括:

解析所述原始数据中包含的具体数据;

基于所述具体数据,获取所述原始数据中携带的键;

基于所述主键与所述检索请求的字段数据,提取所述原始数据中与所述检索请求相关的第一数据,并将所述第一数据作为检索结果输出。

可选的,在本发明第一方面的第五种实现方式中,在所述基于所述主键与所述检索请求的字段数据,提取所述原始数据中与所述检索请求相关的第一数据,并将所述第一数据作为检索结果输出之前,还包括:

根据所述主键从所述源数据库中读取对应的源数据;

比对所述源数据与所述相关的数据是否一致;

若不一致,则存储所述第一数据,并更新所述源数据。

可选的,在本发明第一方面的第六种实现方式中,在所述存储所述第一数据,并更新所述源数据之后,还包括:建立所述源数据与所述指定索引之间的对应关系,并更新至所述内存中的索引映射关系中。

本发明第二方面提供了一种数据检索系统,包括:

接收模块,用于接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

查询模块,用于基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

读取模块,用于根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从源数据库中读取对应的原始数据;

输出模块,用于基于所述原始数据,输出检索结果。

可选的,在本发明第二方面的第一种实现方式中,所述接收模块具体用于:

接收用户发起的检索请求,并对所述检索请求进行解析,得到用户查询需求;

提取所述用户查询需求中携带的字段数据,并对所述字段数据进行分词处理,得到对应的索引项;

基于所述索引项,生成指定索引。

可选的,在本发明第二方面的第二种实现方式中,所述数据检索系统还包括:

第一获取模块,用于从源数据库的内存中获取倒排索引;

解析模块,用于对所述倒排索引进行解析,得到索引项;

第二获取模块,用于基于所述索引项,获取所述索引项中携带的字段信息;

生成模块,用于根据所述字段信息,生成映射索引;

建立模块,用于建立所述映射索引与所述倒排索引之间的索引映射关系。

可选的,在本发明第二方面的第三种实现方式中,所述查询模块包括:

检索单元,用于检索索引映射关系对应的映射表中是否存在与所述指定索引对应的映射索引;

解析单元,用于当所述检索索引映射关系的映射表中存在与所述指定索引对应的映射索引,则解析所述指定索引,得到所述指定索引中包含的索引项;

查询单元,用于以所述索引项作为关键词,利用所述指定索引与所述倒排索引之间的索引映射关系,从内存中查询出与所述指定索引对应的倒排索引。

可选的,在本发明第二方面的第四种实现方式中,所述输出模块具体用于:

解析所述原始数据中包含的具体数据;

基于所述具体数据,获取所述原始数据中携带的主键;

基于所述主键与所述检索请求的字段数据,提取所述原始数据中与所述检索请求相关的第一数据,并将所述第一数据作为检索结果输出。

可选的,在本发明第二方面的第五种实现方式中,所述输出模块具体还用于:

根据所述主键从所述源数据库中读取对应的源数据;

比对所述源数据与所述相关的数据是否一致;

若不一致,则存储所述第一数据,并更新所述源数据。

可选的,在本发明第二方面的第六种实现方式中,所述输出模块具体还用于:

建立所述源数据与所述主键之间的对应关系,并更新至所述内存中的索引映射关系中。

本发明第三方面提供了一种数据检索设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据检索设备执行上述第一方面提供的数据检索方法的步骤。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面提供的数据检索方法的步骤。

本发明提供的技术方案中,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。用于在进行大数据量的数据查询中,解决因目前系统数据量过大、查询时间长导致的用户体验差的问题,将原有关系型数据库的读写分离,并替代优化其读的功能,减少系统压力,增加并发查询能力。

附图说明

图1为本发明实施例中数据检索方法的第一个实施例示意图;

图2为本发明实施例中数据检索方法的第二个实施例示意图;

图3为本发明实施例中数据检索方法的第三个实施例示意图;

图4为本发明实施例中数据检索方法的第四个实施例示意图;

图5为本发明实施例中数据检索系统的第一个实施例示意图;

图6为本发明实施例中数据检索系统的第二个实施例示意图;

图7为本发明实施例中数据检索系统的第三个实施例示意图;

图8为本发明实施例中数据检索设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种数据检索方法、系统、设备及存储介质,用于解决目前系统数据量过大而造成的系统压力增大,并发时查询能力低而导致用户体验不佳的技术问题,减少系统压力,增加并发查询能力,获得更好的用户体验。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本发明实施例中,所述数据检索方法由计算机或服务器执行。

为便于理解,下面对本发明实施例的具体流程进行描述,该实施例提供的数据检索方法主要是应用于数据检索系统,该数据检索系统是基于lucene全文检索引擎设计的,该lucene全文检索引擎是通过倒排索引实现从源数据库中获取原始数据,请参阅图1,本发明实施例中数据检索方法的第一个实施例包括:

101、接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

本实施例中,接收用户的检索请求,并根据检索请求中携带的用户查询需求,生成对应的指定索引。

本实施例中,检索指从用户特定的信息需求出发,对特定的信息集合采用一定的方法、技术手段,根据一定的线索与规则从中找出相关信息。比如,传统文献检索和网络检索。

本实施例中,检索请求是指计算机希望检索出某数据而发出的一个操作指令。在网络时代,我们无时无刻地进行着检索,不管是使用目录浏览还是搜索引擎。以目录浏览为例,目录浏览的方式即某搜索引擎采用的方式,用户可以根据自己的需要点击目录,深入下一层子目录,从而找到自己需要的信息。其中,用户“根据自己的需求点击目录”就是一个发出检索请求的指令。

本实施例中,指定索引是根据用户的实际需求,按照一定规则创建的,手动或动态生成的映射索引。

本实施例中,(在关系数据库中)索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的sql语句执行得更快,可快速访问数据库表中的特定信息。

在数据库系统中建立索引主要有以下作用:

(1)快速取数据;

(2)保证数据记录的唯一性;

(3)实现表与表之间的参照完整性;

(4)在使用orderby、groupby子句进行数据检索时,利用索引可以减少排序和分组的时间。

本实施例中,指定索引也可以理解为指定索引与倒排索引的映射,是定义一个文档及其包含的字段如何存储和索引的过程。其中“索引”既是查询的意思,也是这个文档对应的映射名称。通俗点讲,映射索引就是一个取了名字的索引,至于取的名字具体是什么,是根据用户的实际需求决定的。映射是一个过程,索引既可以指索引的名称,也可以指查询的这个过程,既是名词又是动词。

本实施例中,创建指定索引的目的就是:如果需要获取某数据,首先需要获取这个数据的存储位置,(自定义)映射索引就是要知道去哪查询。进一步地,内存中的倒排索引相当于在脑海里存了一部字典,因为人记不了那么多东西,想找什么东西就去“脑海(此处的脑海相当于内存)”里查下“字典(倒排索引)”,再去“字典(倒排索引)”里记录的数据的存储位置去“拿东西(获取数据)”。

102、基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

本实施例中,根据指定索引和预设创建的索引映射关系,从预置的数据库中查询与指定索引对应的倒排索引。通俗来讲,指定索引里存的多个数据相当于字典里的每个词,倒排索引是一个查询目录,相当于字典的目录,根据偏旁拼音等,能查到所要查询的数据的对应详细数据的页数,根据页数就能找到详细信息。比如,“单人旁”就是一个指定索引,里面包含的每一个字就是索引的一条数据,查询目录就是倒排索引,当然倒排索引包含的东西更多,像使用次数、排序、查询次数等。

本实施例中,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)。进一步地,倒排索引也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。

本实施例中,映射是定义一个文档及其包含的字段如何存储和索引的过程。例如,使用映射来定义:应将哪些字符串字段视为全文字段、哪些字段包含数字,日期或地理位置、是否应将文档中所有字段的值索引到catch-all_all字段中、日期值的格式、自定义规则以控制动态添加字段的映射等。

103、根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从所述源数据库中读取对应的原始数据;

本实施例中,该步骤在实现根据倒排索引从源数据库中查询原始数据时,具体是通过调动lucene全文检索引擎来实现,lucene是一个开放源代码的全文检索引擎工具包,它提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。但它不是一个完整的全文检索引擎,而是一个全文检索引擎的库,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。通过lucene全文检索引擎的应用程式接口,结合本实施例设置的所述倒排索引与所述原始数据之间的存储映射关系,能够快速的实现某一数据的全文检索。

本实施例中,根据倒排索引以及倒排索引与原始数据之间的存储映射关系,从源数据库中读取对应的原始数据。

本实施例中,根据倒排索引与原始数据之间的存储映射关系,获取数据的存储位置,再从磁盘中对应的存储位置读取映射索引对应的原始数据。比如,在字典的目录中查询到“淼”这个字在本字典的258页,根据获取到的“淼”字在本字典的存储位置“第258页”,查询“淼”字具体的释义,并获取对应的数据。

本实施例中,根据倒排索引和(预设的)倒排索引与原始数据之间的存储映射关系,获取对应原始数据的存储位置,从源数据库中获取对应的原始数据。比如,倒排索引(字典目录)存储的是数据实际的存放位置,找到了索引数据,就能根据字典找到对应数据。

104、基于所述原始数据,输出检索结果。

本实施例中,此处检索获得的原始数据,就是基于本次用户的检索请求得到的检索结果,将该原始数据加载至缓存,并返回至客户端,就是输出检索结果。比如,“刘姥姥初进大观园”这一章节在文档的第几页”,获取到的原始数据为“第258页”,输出“第258页”就是最后的检索结果。

本实施例中,检索结果是指系统根据用户的检索请求中包含的某数据,并将该数据作为检索关键字,在搜索引擎中进行检索得到的数据,这个数据就是检索结果。

可以理解的是,本发明的执行主体可以为数据检索系统,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

本发明实施例中,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。主要目的在于解决因目前系统数据量过大、查询时间长导致的用户体验差的问题,将原有关系型数据库的读写分离,并替代优化其读的功能,减少系统压力,增加系统并发查询能力。

请参阅图2,本发明实施例中数据检索方法的第二个实施例中,该方法包括:

201、接收用户发起的检索请求,并对所述检索请求进行解析,得到用户查询需求;

本实施例中,根据用户发起的检索请求,对该检索请求进行解析,获取用户的查询需求。

本实施例中,检索请求是指计算机希望检索出某数据而发出的一个操作指令。在网络时代,我们无时无刻地进行着检索,不管是使用目录浏览还是搜索引擎。以目录浏览为例,目录浏览的方式即某搜索引擎采用的方式,用户可以根据自己的需要点击目录,深入下一层子目录,从而找到自己需要的信息。其中,用户“根据自己的需求点击目录”就是一个发出检索请求的指令。

本实施例中,接收用户发送的检索请求,进一步地,检索请求就是包含有至少一个关键字/词的查询需求,比如检索请求b“查询数据库中包含有“任务调度方法”的所有文档”为例,当系统根据用户的查询需求,得到对应的包含有“任务调度方法”的所有文档。

202、提取所述用户查询需求中携带的字段数据,并对所述字段数据进行分词处理,得到对应的索引项;

本实施例中,获取用户查询需求中携带的字段数据,并确定所述字段数据的数据类型。比如,当系统接收的检索请求中包含的查询需求是“检索文档a中词汇“红楼梦”出现的次数”对这个查询需求进行识别处理,确定字段数据的类型为文本类型。

本实施例中,根据用户查询需求中携带的字段数据,并对这些字段数据进行分词处理,比如,对“中华人民共和国”进行分词处理,得到“中华”、“人民”、“共和国”,分别以这些更小的字段作为关键词,得到对应的索引项。

203、基于所述索引项,生成指定索引;

本实施例中,根据得到的多个索引项,生成一个指定索引。

204、检索索引映射关系对应的映射表中是否存在与所述指定索引对应的映射索引,若存在,则解析所述指定索引,得到所述指定索引中包含的索引项;

本实施例中,查询索引映射关系的映射表中是否存在与该指定索引对应的映射索引。该映射表中包含有索引项构成的映射索引与倒排索引之间的映射关系。

本实施例中,若存在,则对该指定索引进行解析,得到指定索引中包含的索引项。比如,指定索引a中包含的索引项为a。

205、以所述索引项作为关键词,利用所述指定索引与所述倒排索引之间的索引映射关系,从内存中查询出与所述指定索引对应的倒排索引;

本实施例中,以该索引项作为关键词,查询出与该指定索引对应的映射索引,进一步地,利用映射索引与倒排索引之间的索引映射关系,在内存中查询出与该指定索引对应的倒排索引。

206、根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从源数据库中读取对应的原始数据;

207、解析所述原始数据中包含的具体数据;

本实施例中,解析原始数据,获取其中包含的具体数据。比如检索结果为“文档《张三》”,具体内容为张三的个人档案信息。

208、基于所述具体数据,获取所述原始数据中携带的主键;

本实施例中,对得到的具体数据(检索结果--“文档《张三》”)进行解析,从中获取这份文档数据的主键--张三的“身份证号码”。主键就是可以将本数据与其他数据明显区分开一个字段信息,此处以“身份证号码”为例。

209、基于所述主键与所述检索请求的字段数据,提取所述原始数据中与所述检索请求相关的第一数据,并将所述第一数据作为检索结果输出。

本实施例中,根据该主键与检索请求中的字段信息,从预置数据库中提取出与该检索请求相关的第一数据,并将该第一数据作为检索结果输出。

本实施例中,检索请求中的字段信息就是用户实际查询需求,比如,检索请求查询“张三的学历信息”。

由上可见,本发明数据检索方法通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。本实施例用于在进行大数据量的数据查询中,解决因目前系统数据量过大、查询时间长而出现卡顿导致的用户体验差的问题,将原有关系型数据库的读写分离,替代优化其读的功能,减少系统压力,增加系统并发时查询能力。

请参阅图3,本发明实施例中数据检索方法的第三个实施例中,该方法包括:

301、从源数据库的内存中获取倒排索引;

本实施例中,从源数据库的内存中获取倒排索引,比如,从“新华字典”的目录部分,获取所有目录索引的信息,此处的“目录索引的信息”对应的就是倒排索引。

302、对所述倒排索引进行解析,得到索引项;

本实施例中,解析倒排索引,进一步地,获取倒排索引中携带的索引项。一个倒排索引中包含至少一个索引项。

303、基于所述索引项,获取所述索引项中携带的字段信息;

本实施例中,根据索引项,获取索引项中携带的字段信息。比如“中国”、“中华民族”。

304、根据所述字段信息,生成映射索引;

本实施例中,根据索引项中包含的字段信息生成映射索引。

305、建立所述映射索引与所述倒排索引之间的索引映射关系;

本实施例中,将根据字段信息生成的映射索引与倒排索引一一对应,建立映射索引与对应倒排索引之间的对应关系。比如字段信息“a”查询的倒排索引为“a”,字段信息“b”查询的倒排索引为“b”,字段信息“c”查询的倒排索引为“c”,根据这个结果,建立字段信息与对应倒排索引的对应关系。

306、接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

307、基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

308、根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从源数据库中读取对应的原始数据;

309、基于所述原始数据,输出检索结果;

310、根据所述主键从所述源数据库中读取对应的源数据;

本实施例中,将该主键作为关键词,从源数据库中读取对应的源数据,其中,源数据库指关系型数据库。

311、比对所述源数据与所述相关的数据是否一致,若不一致,则存储所述第一数据,并更新所述源数据;

本实施例中,比对该源数据与相关的数据是否一致。比如,主键a对应的相关数据:文档a中包含的数据信息有:张三的身高、体重、年龄、婚姻状态,而源数据a1中包含的数据信息有:张三的身高、工作单位、学历信息、房贷车贷信息、籍贯等。判断这两个数据是否一致;若不一致,则存储文档a中的数据信息,并更新该源数据a1中包含的数据信息。

312、建立所述源数据与所述指定索引之间的对应关系,并更新至所述内存中的索引映射关系中。

本实施例中,根据检索结果中携带有主键a的相关数据与指定索引之间的对应关系,建立源数据与所述指定索引之间的对应关系,并将携带有同样主键a的源数据同步至对应指定索引下,根据主键存储及更新数据。

由上可见,本发明数据检索方法,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。主要目的在于解决因目前系统数据量过大、查询时间长而出现卡顿导致的用户体验差的问题,将原有关系型数据库的读写分离,替代优化其读的功能,减少系统压力,增加系统并发时查询能力。

请参阅图4,本发明实施例中数据检索方法的第三个实施例中,该方法包括:

401、从源数据库的内存中获取倒排索引;

本实施例中,从源数据库的内存中获取倒排索引,比如,从“新华字典”的目录部分,获取所有目录索引的信息,此处的“目录索引的信息”对应的就是倒排索引。

402、对所述倒排索引进行解析,得到索引项;

本实施例中,解析倒排索引,进一步地,获取倒排索引中携带的索引项。一个倒排索引中包含至少一个索引项。

403、基于所述索引项,获取所述索引项中携带的字段信息;

本实施例中,根据索引项,获取索引项中携带的字段信息。比如“中国”、“中华民族”。

404、根据所述字段信息,生成映射索引;

本实施例中,根据索引项中包含的字段信息生成映射索引。

405、建立所述映射索引与所述倒排索引之间的索引映射关系;

本实施例中,将根据字段信息生成的映射索引与倒排索引一一对应,建立映射索引与对应倒排索引之间的对应关系。比如字段信息“a”查询的倒排索引为“a”,字段信息“b”查询的倒排索引为“b”,字段信息“c”查询的倒排索引为“c”,根据这个结果,建立字段信息与对应倒排索引的对应关系。

406、接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

本实施例中,接收用户的检索请求,并根据检索请求中携带的用户查询需求,生成对应的指定索引。

本实施例中,检索指从用户特定的信息需求出发,对特定的信息集合采用一定的方法、技术手段,根据一定的线索与规则从中找出相关信息。比如,传统文献检索和网络检索。

本实施例中,检索请求是指计算机希望检索出某数据而发出的一个操作指令。在网络时代,我们无时无刻地进行着检索,不管是使用目录浏览还是搜索引擎。以目录浏览为例,目录浏览的方式即雅虎搜索引擎采用的方式,用户可以根据自己的需要点击目录,深入下一层子目录,从而找到自己需要的信息。其中,用户“根据自己的需求点击目录”就是一个发出检索请求的指令。

本实施例中,指定索引是根据用户的实际需求,按照一定规则创建的,手动或动态生成的映射索引。

407、基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

本实施例中,根据指定索引和预设创建的索引映射关系,从预置的数据库中查询与指定索引对应的倒排索引。通俗来讲,指定索引里存的是多个数据相当于字典里的每个词,倒排索引是个查询目录,相当于字典的目录,根据偏旁拼音等,你能查到你所要查询的数据的对应详细数据的页数,根据页数就能找到详细信息。比如,“单人旁”就是一个指定索引,里面包含的每一个字就是索引的一条数据,查询目录就是倒排索引,当然倒排索引包含的东西更多,像使用次数,排序等,查询次数等。

408、根据所述倒排索引,以及所述倒排索引与所述原始数据之间的存储映射关系,从源数据库中读取对应的原始数据;

本实施例中,根据倒排索引以及倒排索引与原始数据之间的存储映射关系,从源数据库中读取对应的原始数据。

本实施例中,根据倒排索引与原始数据之间的存储映射关系,获取数据的存储位置,再从磁盘中对应的存储位置读取映射索引对应的原始数据。比如,在字典的目录中查询到“淼”这个字在本字典的258页,根据获取到的“淼”字在本字典的存储位置“第258页”,查询“淼”字具体的释义,并获取对应的数据。

409、基于所述原始数据,输出检索结果。

本实施例中,此处检索获得的原始数据,就是基于本次用户的检索请求得到的检索结果,将该原始数据加载至缓存,并返回至客户端,就是输出检索结果。比如,“刘姥姥初进大观园”这一章节在第文档的第几页”,获取到的原始数据为“第258页”,输出的“第258页”就是最后的检索结果。

本实施例中,检索结果是指系统根据用户的检索请求中包含的某数据所谓关键字,在搜索引擎中进行检索得到的数据,这个数据就是检索结果。

由上可见,本发明数据检索方法,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果。用于在进行大数据量的数据查询中,解决因目前系统数据量过大、查询时间长,出现卡顿,导致的用户体验差的问题,替代优化其“读”的功能,减少系统压力,增加并发时查询能力。

上面对本发明实施例中数据检索方法进行了描述,下面对本发明实施例中数据检索系统进行描述,请参阅图5,本发明实施例中数据检索系统的第一个实施例包括:

接收模块501,用于接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

查询模块502,用于基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

读取模块503,用于根据所述倒排索引以及所述倒排索引与所述原始数据之间的第一存储映射关系,从源数据库中读取对应的原始数据;

输出模块504,用于基于所述原始数据,输出检索结果。

由上可见,本发明数据检索系统,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。在本实施例中,本系统主要用于解决因目前系统数据量过大、查询时间长而出现卡顿导致的用户体验差的问题,将原有关系型数据库的读写分离,替代优化其读的功能,减少系统压力,增加系统并发查询能力。

请参阅图6,本发明实施例中数据检索系统的第二个实施例中,该系统包括:

接收模块601,用于接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

查询模块602,用于基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

读取模块603,用于根据所述倒排索引以及所述倒排索引与所述原始数据之间的第一存储映射关系,从源数据库中读取对应的原始数据;

输出模块604,用于基于所述原始数据,输出检索结果;

在本实施例中,所述数据检索系统还包括:

第一获取模块605,用于从源数据库的内存中获取倒排索引;

解析模块606,用于对所述倒排索引进行解析,得到索引项;

第二获取模块607,用于基于所述索引项,获取所述索引项中携带的字段信息;

生成模块608,用于根据所述字段信息,生成映射索引;

建立模块609,用于建立所述映射索引与所述倒排索引之间的索引映射关系。

可选的,在本发明实施例中数据检索系统的第二个实施例中,所述查询模块602包括:

检索单元6021,用于检索索引映射关系对应的映射表中是否存在与所述指定索引对应的映射索引;

解析单元6022,用于当所述检索索引映射关系的映射表中存在与所述指定索引对应的映射索引,则解析所述指定索引,得到所述指定索引中包含的索引项;

查询单元6023,用于以所述索引项作为关键词,利用所述指定索引与所述倒排索引之间的索引映射关系,从内存中查询出与所述指定索引对应的倒排索引。

可选的,所述输出模块604具体用于:

解析所述原始数据中包含的具体数据;

基于所述具体数据,获取所述原始数据中携带的主键;

基于所述主键与所述检索请求的字段数据,提取所述原始数据中与所述检索请求相关的第一数据,并将所述第一数据作为检索结果输出。

由上可见,本发明数据检索系统,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。主要目的在于解决因目前系统数据量过大、查询时间长导致的用户体验差的问题,将原有关系型数据库的读写分离,并替代优化其读的功能,减少系统压力,增加系统并发查询能力。

请参阅图7,本发明实施例中数据检索系统的第三个实施例中,该系统包括:

第一获取模块701,用于从源数据库的内存中获取倒排索引;

解析模块702,用于对所述倒排索引进行解析,得到索引项;

第二获取模块603,用于基于所述索引项,获取所述索引项中携带的字段信息;

生成模块704,用于根据所述字段信息,生成映射索引;

建立模块705,用于建立所述映射索引与所述倒排索引之间的索引映射关系;

接收模块706,用于接收用户发起的检索请求,基于所述检索请求中携带的用户查询需求生成指定索引;

查询模块707,用于基于所述指定索引,以及预设创建的索引映射关系,从预置数据库的内存中查询出与所述指定索引对应的倒排索引,其中,所述索引映射关系为基于所述内存中预设的倒排索引和原始数据构建的从指定索引到所述原始数据之间的唯一映射关系;

读取模块708,用于根据所述倒排索引以及所述倒排索引与所述原始数据之间的第一存储映射关系,从源数据库中读取对应的原始数据;

输出模块709,用于基于所述原始数据,输出检索结果;

更新模块710,用于建立所述源数据与所述主键之间的对应关系,并更新至所述内存中的索引映射关系中。

由上可见,本发明数据检索系统,通过创建自定义的映射索引列表,接收检索请求,根据检索请求中的检索条件从磁盘中获取对应的检索结果;其中,映射索引列表包括至少一个映射索引,从磁盘中获取原始数据,并构建原始数据与映射索引列表的映射关系。主要目的在于解决因目前系统数据量过大、查询时间长导致的用户体验差的问题,将原有关系型数据库的读写分离,并替代优化其读的功能,减少系统压力,增加系统并发查询能力。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上面图5至7从模块化功能实体的角度对本发明实施例中的数据检索系统进行详细描述,下面从硬件处理的角度对本发明实施例中数据检索设备进行详细描述。

图8是本发明实施例提供的一种数据检索设备的结构示意图,该数据检索设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对图计算的布尔型变量存储中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在数据检索设备800上执行存储介质830中的一系列指令操作。

数据检索设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图8中示出的数据检索设备结构并不构成对数据检索设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1