基于索引库的数据检索方法及系统技术领域
本发明涉及数据检索技术领域,特别是涉及基于索引库的数据检索方法及
系统。
背景技术
为了提高检索效率,数据检索系统通常会为检索对象构建索引库,然后基
于索引库进行数据检索,其中,索引库通常为:将从检索对象中所提取出的一
些信息作为索引信息组织而成。举例而言:对于一篇文档,所对应的索引信息
为从该文档中提取的文字内容或者文档的属性参数,文档的属性参数可以为:
作者姓名,文档类别,等等。
其中,数据检索系统在启动时,会构建当前所存在的作为检索对象的基础
数据所对应的索引库,进而基于该索引库执行后续的数据检索;并且,由于数
据资源会不断增多,需要增加辅助数据来完善所存在的检索对象,此时,相应
的索引库也需要更新,例如:对于百度、谷歌等的数据检索系统,由于每天的
网络资源不断增加,这无疑使得需要不断增加辅助数据来完善检索对象,那么,
相应的索引库也就需要不断更新。现有技术中,数据检索系统在获得所增加的
辅助数据后,每次都基于所增加的辅助数据和当前所存在的检索对象,对当前
所存在的索引库进行重构,从而在重构完成后,后续基于所重构的索引库来进
行数据检索。
尽管现有的方式能够保证索引库与检索对象的有效对应,但是,每次获得
辅助数据对旧的索引库执行重构,导致更新索引库的工作量较大,并且,在执
行重构过程无疑影响对数据检索请求的响应。
发明内容
本发明实施例的目的在于提供一种基于索引库的数据检索方法及系统,以
降低更新索引库的工作量且避免数据检索请求的响应受到影响。具体技术方案
如下:
第一方面,本发明实施例提供了一种基于索引库的数据检索方法,应用于
数据检索系统,所述数据检索系统预先构建作为检索对象的基础数据所对应的
基础索引库;所述方法包括:当获得作为检索对象的辅助数据时,构建所述辅
助数据所对应的辅助索引库;
所述方法还包括:
当获得数据检索请求时,确定当前所存在的至少一个目标索引库,其中,
所述至少一个目标索引库包括基础索引库一类索引库,或者,所述基础索引库
和所述辅助索引库两类索引库;
基于所确定出的当前所存在的至少一个目标索引库以及所对应的检索对
象,确定所述数据检索请求所对应的检索结果。
可选的,所述辅助索引库与所述基础索引库的构建方式相同。
可选的,所述基于所确定出的当前所存在的至少一个目标索引库以及所对
应的检索对象,确定所述数据检索请求所对应的检索结果,包括:
从至少一个目标索引库中,分别确定是否存在与所述数据检索请求所携带
检索词相匹配的索引信息,如果存在,从该目标索引库所对应的检索对象中,
获得该索引信息所对应的初级检索结果;
基于所获得的初级检索结果,确定所述数据检索请求所对应的检索结果。
可选的,所述基于所获得的初级检索结果,确定所述数据检索请求所对应
的检索结果,包括:
对所获得的初级检索结果求并集;
将求并集所得结果作为所述数据检索请求所对应的检索结果。
可选的,获得作为检索对象的辅助数据的方式包括:
基于网络爬虫定时上传数据的方式,获得作为检索对象的辅助数据;
或者,
基于定时从网络爬虫处请求数据的方式,获得作为检索对象的辅助数据。
可选的,获得作为检索对象的辅助数据的方式包括:
基于人工导入数据方式,获得作为检索对象的辅助数据。
可选的,所述辅助索引库与所述基础索引库的构建方式为:倒排表方式。
第二方面,本发明实施例提供了一种基于索引库的数据检索系统,所述数
据检索系统预先构建作为检索对象的基础数据所对应的基础索引库;所述系统
包括:
辅助索引库构建模块,用于当获得作为检索对象的辅助数据时,构建所述
辅助数据所对应的辅助索引库;
所述系统还包括:
目标索引库确定模块,用于当获得数据检索请求时,确定当前所存在的至
少一个目标索引库,其中,所述至少一个目标索引库包括基础索引库一类索引
库,或者,所述基础索引库和所述辅助索引库两类索引库;
检索结果确定模块,用于基于所确定出的当前所存在的至少一个目标索引
库以及所对应的检索对象,确定所述数据检索请求所对应的检索结果。
可选的,所述辅助索引库与所述基础索引库的构建方式相同。
可选的,所述检索结果确定模块,包括:
初级索引结果获得单元,用于从至少一个目标索引库中,分别确定是否存
在与所述数据检索请求所携带检索词相匹配的索引信息,如果存在,从该目标
索引库所对应的检索对象中,获得该索引信息所对应的初级检索结果;
检索结果确定单元,用于基于所获得的初级检索结果,确定所述数据检索
请求所对应的检索结果。
可选的,所述检索结果确定单元,包括:
并集求取子单元,用于对所获得的初级检索结果求并集;
检索结果确定子单元,用于将求并集所得结果作为所述数据检索请求所对
应的检索结果。
可选的,所述辅助索引库构建模块获得作为检索对象的辅助数据的方式包
括:
基于网络爬虫定时上传数据的方式,获得作为检索对象的辅助数据;
或者,
基于定时从网络爬虫处请求数据的方式,获得作为检索对象的辅助数据。
可选的,所述辅助索引库构建模块获得作为检索对象的辅助数据的方式包
括:
基于人工导入数据方式,获得作为检索对象的辅助数据。
可选的,所述辅助索引库与所述基础索引库的构建方式为:倒排表方式。
本发明实施例中,数据检索系统预先构建作为检索对象的基础数据所对应
的基础索引库,并当获得作为检索对象的辅助数据时,构建该辅助数据所对应
的辅助索引库;进而,当获得数据检索请求时,确定当前所存在的至少一个目
标索引库;基于所确定出的当前所存在的至少一个目标索引库以及所对应的检
索对象,确定该数据检索请求所对应的检索结果。可见,与现有技术相比,本
方案并不依据多次获得的辅助数据对基础索引库重构,而是在保证基础索引库
不变的情况,增设辅助数据所对应的辅助索引库,因此,可以降低更新索引库
的工作量且避免数据检索请求的响应受到影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施
例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述
中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付
出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种基于索引库的数据检索方法的流程图;
图2为本发明实施例所提供的一种基于索引库的数据检索系统的结构示意
图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清
楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是
全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造
性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了降低更新索引库的工作量且避免数据检索请求的响应受到影响,本发
明实施例提供了一种基于索引库的数据检索方法及系统。
下面首先对本发明实施例所提供的一种基于索引库的数据检索方法进行
介绍。
本发明实施例所提供的一种基于索引库的数据检索方法应用于数据检索
系统,即本发明实施例所提供的一种基于索引库的数据检索方法的执行主体为
一种基于索引库的数据检索系统;并且,该数据检索系统预先构建作为检索对
象的基础数据所对应的基础索引库。
可以理解的是,基础数据的获得方式可以采用现有技术获得,例如:人工
导入方式,或者,通过网络爬虫爬取方式,等等,这都是合理的;并且,构建
作为检索对象的基础数据所对应的基础索引库的具体实现方式可以采用现有
方式,举例而言:构建基础索引库的具体实现方式可以为倒排表方式,当然并
不局限于此。
如图1所示,本发明实施例所提供的一种基于索引库的数据检索方法,可
以包括如下步骤:
S101,当获得作为检索对象的辅助数据时,构建该辅助数据所对应的辅助
索引库;
为了丰富检索对象,可以多次获得作为检索对象的辅助数据,并且,当每
次获得作为检索对象的辅助数据时,可以构建该辅助数据所对应的辅助索引
库。需要强调的是,所谓的“基础数据”中的“基础”以及“辅助数据”中的
“辅助”仅仅是为了不同时刻存在的作为检索对象的数据,并不具有任何限定
意义;类似的,“基础索引库”中的“基础”和“辅助索引库”中的“辅助”
仅仅是为了区分通过基础数据和辅助数据所构建的索引库,并不具有任何限定
意义。
其中,该辅助索引库的构建方式可以与该基础索引库的构建方式相同;并
且,可以理解的是,在实际应用中,辅助索引库和基础索引库的构建方式可以
采用现有方式,举例而言:倒排表方式,当然并不局限于此。
可以理解的是,获得作为检索对象的辅助数据的方式存在多种,为了方案
清楚,下面介绍几种具体实现方式:
方式一:基于网络爬虫定时上传数据的方式,获得作为检索对象的辅助数
据。
其中,在该种实现方式中,网络爬虫按照预定的爬取任务在网络上爬取用
于作为检索对象的辅助数据,并且,定时将所爬取到的辅助数据上传至数据检
索系统;所谓网络爬虫在网络上爬取辅助数据的方式可以采用现有技术中的网
络爬虫在网络上爬取网络数据的方式。
方式二:基于定时从网络爬虫处请求数据的方式,获得作为检索对象的辅
助数据。
其中,在该种实现方式中,网络爬虫按照预定的爬取任务在网络上爬取用
于作为检索对象的辅助数据,并缓存所爬取的网络数据,进而,数据检索系统
定时向网络爬虫请求所爬取的网络数据,其中,所谓网络爬虫在网络上爬取辅
助数据的方式可以采用现有技术的网络爬虫爬取网络数据的方式。
方式三:基于人工导入数据方式,获得作为检索对象的辅助数据。
其中,在该种实现方式中,可以通过人工方式获取到作为检索对象的辅助
数据,进而,通过数据检索系统所提供的数据导入入口来人工导入该辅助服务。
需要强调的是,上述的获得作为检索对象的辅助数据的方式仅仅作为示
例,并不应该构成对本发明实施例的限定。
S102,当获得数据检索请求时,确定当前所存在的至少一个目标索引库,
其中,至少一个目标索引库包括基础索引库一类索引库,或者,该基础索引库
和该辅助索引库两类索引库;
其中,当获得数据检索请求时,由于存在获得辅助数据以及辅助数据所对
应的辅助索引库的过程,因此,为了保证数据检索请求所对应的检索结果的完
整性,可以首先确定当前所存在的至少一个目标索引库。
可以理解的是,由于数据检索请求的获得时刻可以在基础索引库建立之
后,辅助索引库建立之前,因此,该至少一个目标索引库可以包括基础索引库
一类索引库;而由于数据检索请求的获得时刻可以在辅助索引库建立之后,因
此,该至少一个目标索引库可以包括基础索引库和辅助索引库这两类索引库。
S103,基于所确定出的当前所存在的至少一个目标索引库以及所对应的检
索对象,确定该数据检索请求所对应的检索结果。
在确定出当前所存在的至少一个目标索引库后,可以基于所确定出的当前
所存在的至少一个目标索引库以及所对应的检索对象,确定该数据检索请求所
对应的检索结果。当然,在确定出该数据检索请求所对应的检索结果后,可以
输出该检索结果,以使得该数据检索请求的发出者能够获知该检索结果。
具体的,所述基于所确定出的当前所存在的至少一个目标索引库以及所对
应的检索对象,确定该数据检索请求所对应的检索结果,可以包括:
从至少一个目标索引库中,分别确定是否存在与该数据检索请求所携带检
索词相匹配的索引信息,如果存在,从该目标索引库所对应的检索对象中,获
得该索引信息所对应的初级检索结果;
基于所获得的初级检索结果,确定该数据检索请求所对应的检索结果。
其中,数据索引请求中携带有检索词,每一目标索引库中可以存在至少一
个与检索词相匹配的索引信息,或者,不存在与检索信息相匹配的索引信息,
这都是合理的。可以理解的是,所谓检索词与索引信息相匹配具体指:检索词
的部分内容与索引信息相同、检索词与索引信息相同和/或检索词包含于索引
信息,等等。并且,当至少一个目标索引库中均不存在与该数据检索请求所携
带检索词相匹配的索引信息,此时,则可以将该数据检索请求所对应的检索结
果确定为内容为空。举例而言:假设检索词为”笔记本”,那么,对于检索词
与索引信息匹配为检索词包含于索引信息的情况,与该检索词匹配的索引信息
可以包括:“笔记本排名”,对于检索词与索引信息匹配为检索词的部分内容
与索引信息相同的情况,与该检索词匹配的索引信息可以包括:“云笔记”,对
于检索词与索引信息匹配为检索词与索引信息相同的情况,与该检索词匹配的
索引信息可以包括“笔记本”。
进一步的,所述基于所获得的初级检索结果,确定该数据检索请求所对应
的检索结果,可以包括:
对所获得的初级检索结果求并集;
将求并集所得结果作为该数据检索请求所对应的检索结果。
其中,对初级检索结果求并集的具体实现方式可以参照现有技术中的实现
方式;同样的,从该目标索引库所对应的检索对象中获得该索引信息所对应的
初级检索结果的具体实现方式可以采用现有,在此不做赘述。
举例而言:假设数据检索系统采用倒排表方式预先构建有基础索引库A,
该基础索引库A所对应的检索对象为基础数据1,并且,在获得数据检索请求a
之前,依次获得过两组作为检索对象的的辅助数据:辅助数据2和辅助数据3,
当获得辅助数据2时,采用倒排表方式构建该辅助数据2所对应的辅助索引库B,
当获得辅助数据3时,采用倒排表方式构建该辅助数据3所对应的辅助索引库C;
而当获得数据检索请求a时,确定当前所存在的至少一个目标索引库:基础索
引库A、辅助索引库B和辅助索引库C,进一步的,从至少一个目标索引库中,
分别确定是否存在与该数据检索请求a所携带检索词相匹配的索引信息,假设
确定结果为:基础索引库A中不存在与该数据检索请求a所携带检索词相匹配的
索引信息,辅助索引库B中存在与该数据检索请求a所携带检索词相匹配的索引
信息1和索引信息2,辅助索引库C中存在与该数据检索请求a所携带检索词相匹
配的索引信息3,此时,从辅助索引库B所对应的辅助数据2中获得索引信息1
所对应的初级检索结果1以及索引信息2所对应的初级检索结果2,从辅助索引
库C所对应的辅助数据3中获得索引信息3所对应的初级检索结果3,对初级检索
结果1、初级检索结果2和初级检索结果3求并集,将求并集所得结果作为该数
据检索请求a所对应的检索结果。
本发明实施例中,数据检索系统预先构建作为检索对象的基础数据所对应
的基础索引库,并当获得作为检索对象的辅助数据时,构建该辅助数据所对应
的辅助索引库;进而,当获得数据检索请求时,确定当前所存在的至少一个目
标索引库;基于所确定出的当前所存在的至少一个目标索引库以及所对应的检
索对象,确定该数据检索请求所对应的检索结果。可见,与现有技术相比,本
方案并不依据多次获得的辅助数据对基础索引库重构,而是在保证基础索引库
不变的情况,增设辅助数据所对应的辅助索引库,因此,可以降低更新索引库
的工作量且避免数据检索请求的响应受到影响。
相应于上述方法实施例,本发明实施例还提供了一种基于索引库的数据检
索系统,所述数据检索系统预先构建作为检索对象的基础数据所对应的基础索
引库;如图2所示,所述系统包括:
辅助索引库构建模块210,用于当获得作为检索对象的辅助数据时,构建
所述辅助数据所对应的辅助索引库;
所述系统还包括:
目标索引库确定模块220,用于当获得数据检索请求时,确定当前所存在
的至少一个目标索引库,其中,所述至少一个目标索引库包括基础索引库一类
索引库,或者,所述基础索引库和所述辅助索引库两类索引库;
检索结果确定模块230,用于基于所确定出的当前所存在的至少一个目标
索引库以及所对应的检索对象,确定所述数据检索请求所对应的检索结果。
本发明实施例中,数据检索系统预先构建作为检索对象的基础数据所对应
的基础索引库,并当获得作为检索对象的辅助数据时,构建该辅助数据所对应
的辅助索引库;进而,当获得数据检索请求时,确定当前所存在的至少一个目
标索引库;基于所确定出的当前所存在的至少一个目标索引库以及所对应的检
索对象,确定该数据检索请求所对应的检索结果。可见,与现有技术相比,本
方案并不依据多次获得的辅助数据对基础索引库重构,而是在保证基础索引库
不变的情况,增设辅助数据所对应的辅助索引库,因此,可以降低更新索引库
的工作量且避免数据检索请求的响应受到影响。
具体的,所述辅助索引库与所述基础索引库的构建方式相同。
具体的,所述检索结果确定模块230,可以包括:
初级索引结果获得单元,用于从至少一个目标索引库中,分别确定是否存
在与所述数据检索请求所携带检索词相匹配的索引信息,如果存在,从该目标
索引库所对应的检索对象中,获得该索引信息所对应的初级检索结果;
检索结果确定单元,用于基于所获得的初级检索结果,确定所述数据检索
请求所对应的检索结果。
具体的,所述检索结果确定单元,可以包括:
并集求取子单元,用于对所获得的初级检索结果求并集;
检索结果确定子单元,用于将求并集所得结果作为所述数据检索请求所对
应的检索结果。
具体的,所述辅助索引库构建模块210获得作为检索对象的辅助数据的方
式包括:
基于网络爬虫定时上传数据的方式,获得作为检索对象的辅助数据;
或者,
基于定时从网络爬虫处请求数据的方式,获得作为检索对象的辅助数据。
具体的,所述辅助索引库构建模块210获得作为检索对象的辅助数据的方
式包括:
基于人工导入数据方式,获得作为检索对象的辅助数据。
具体的,所述辅助索引库与所述基础索引库的构建方式可以为:倒排表方
式。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些
实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包
含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素
的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的
其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在
没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包
括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相
似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之
处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的
比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范
围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包
含在本发明的保护范围内。