CN106156018B - 数据索引方法及装置 - Google Patents
数据索引方法及装置 Download PDFInfo
- Publication number
- CN106156018B CN106156018B CN201510128058.9A CN201510128058A CN106156018B CN 106156018 B CN106156018 B CN 106156018B CN 201510128058 A CN201510128058 A CN 201510128058A CN 106156018 B CN106156018 B CN 106156018B
- Authority
- CN
- China
- Prior art keywords
- data
- retrieved
- source data
- source
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据索引方法,包括步骤:接收检索请求,确定所述检索请求对应的检索信息及用户信息;从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据生成索引数据;从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据。本发明还公开一种数据索引装置。本发明减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
Description
技术领域
本发明涉及到数据处理技术领域,特别涉及到数据索引方法及装置。
背景技术
现有的数据检索技术中,通常采用“全量索引+实时推送”的方法来实现海量历史数据和增量数据的索引,其中全量索引是将全量数据库的数据定期离线进行索引,而实时推送是将增量数据进行实时索引,两份数据合在一起作为总的索引数据供用户检索。这种方案的数据来源都是采用“推送”的方式被动获取的,其存在的缺陷就是海量的文档数据被推送到索引平台,但检索者的目标待检索数据只是其中很小的一部分,且检索者不确定的。在检索者不确定以及检索者对应的目标待检索数据集合相对确定的情况(只是索引数据中的一部分)下,许多已索引的文档在很大程度上不会被检索出来,即在很多检索者不发起检索,但其对应的目标待检索数据已经被提前索引时,这些提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低。
发明内容
本发明实施例提供一种数据索引方法及装置,旨在解决现有的数据检索方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。
为实现上述目的,本发明实施例提出一种数据索引方法,包括步骤:
接收检索请求,确定所述检索请求对应的检索信息及用户信息;
从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据生成索引数据;
从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据。
为了实现上述目的,本发明实施例还进一步提出一种数据索引装置,包括:
接发模块,用于接收检索请求;
处理模块,用于确定所述检索请求对应的检索信息及用户信息;
获取模块,用于从源数据库获取与所述用户信息对应的待检索源数据;
生成模块,用于根据所述待检索源数据生成索引数据;
所述处理模块,还用于从所述索引数据中确定与所述检索信息对应的目标索引数据;
输出模块,用于输出所述目标索引数据。
本发明通过在用户信息发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
附图说明
图1为本发明实施例数据索引装置所涉及的硬件架构示意图;
图2为本发明数据索引方法的第一实施例的流程示意图;
图3为本发明从源数据库获取与所述用户信息对应的待检索源数据一实施例的流程示意图;
图4为本发明根据所述待检索源数据生成索引数据一实施例的流程示意图;
图5为本发明判断所获取的待检索源数据是否满足预设条件一实施例的流程示意图;
图6为本发明判断所获取的待检索源数据是否满足预设条件另一实施例的流程示意图;
图7为本发明数据索引方法的第二实施例的流程示意图;
图8为本发明数据索引架构间数据处理一实施例的流程示意图;
图9为本发明数据索引过程一实施例的流程示意图;
图10为本发明数据索引处理架构一实施例的示意图;
图11为本发明数据索引装置的较佳实施例的功能模块示意图;
图12为图11中生成模块一实施例的细化功能模块示意图;
图13为图12中判断单元一实施例的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:接收检索请求,确定所述检索请求对应的检索信息及用户信息;从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据生成索引数据;从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据。通过在用户信息发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
由于现有的索引方式下提前索引的海量文档需要的索引资源会非常大,会导致索引成本高,索引数据的曝光率低的问题。
本发明实施例架构一数据索引装置,该数据索引装置通过在用户信息发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
其中,本实施例数据索引装置可以承载于PC端,也可以承载于手机、平板电脑等进行数据索引等网络应用的电子终端。该数据索引装置所涉及的硬件架构可以如图1所示。
图1示出了本发明实施例数据索引装置所涉及的硬件架构。如图1所示,所述数据索引装置所涉及的硬件包括:处理器301,例如CPU,网络接口304,用户接口303,存储器305,通信总线302。其中,通信总线302用于实现该信息推送平台中各组成部件之间的连接通信。用户接口303可以包括显示屏(Display)、键盘(Keyboard)、鼠标等组件,用于接收用户输入的信息,并将接收的信息发送至处理器305进行处理。显示屏可以为LCD显示屏、LED显示屏,也可以为触摸屏,用于显示数据索引装置需要显示的数据,例如显示数据索引、索引数据等操作界面。可选用户接口303还可以包括标准的有线接口、无线接口。网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器305可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器305可选的还可以是独立于前述处理器301的存储装置。如图1所示,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及数据索引程序。
在图1所示的数据索引装置所涉及的硬件中,网络接口304主要用于连接应用平台,与应用平台进行数据通信;用户接口303主要用于连接客户端,与客户端进行数据通信,接收客户端输入的信息和指令;而处理器301可以用于调用存储器305中存储的数据索引程序,并执行以下操作:
接收检索请求,确定所述检索请求对应的检索信息及用户信息;
从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据生成索引数据;
从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据索引程序可以执行以下操作:
确定所述用户信息的源数据访问权限;
从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据索引程序可以执行以下操作:
判断所获取的待检索源数据是否满足预设条件;
在所获取的待检索源数据满足预设条件后,根据满足预设条件的待检索源数据生成索引数据。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据索引程序可以执行以下操作:
根据满足预设条件的待检索源数据生成索引数据,并判断所述待检索源数据是否获取完毕;
在所述待检索源数据未获取完毕后,保持从所述所获取的待检索源数据中获取待检索源数据,直至所述待检索源数据获取完毕。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据索引程序可以执行以下操作:
确定所获取的待检索源数据的数据量的值;
判断所确定的数据量的值是否大于预设阈值;
在所确定的数据量的值大于预设阈值时,判断所获取的待检索源数据是否满足预设条件。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据索引程序可以执行以下操作:
确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间;
确定所述起始获取时间至当前时间的时间间隔;
判断所述时间间隔是否大于预设时间间隔;
在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件。
本实施例根据上述方案,通过在用户信息发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
基于上述硬件架构,提出本发明数据索引方法实施例。
如图2所示,提出本发明一种数据索引方法的第一实施例,所述数据索引方法包括:
步骤S10,接收检索请求,确定所述检索请求对应的检索信息及用户信息;
用户在使用检索工具(例如,百度、搜狗或谷歌或QQ应用中的搜索功能)时,需要检索相应的数据时,发出检索请求,例如,在QQ空间的UGC搜索、微信朋友圈搜索时,用户输入关键词,连同其好友关系链信息一起向后台发起检索请求,后台接收所述检索请求,确定所述检索请求对应的检索信息及用户信息。所述检索信息为所述关键字,所述用户信息包括发起检索请求的用户、所述用户的好友关系链等,所述用户为QQ号码或QQ昵称或微信号码或微信昵称等。在本实施例中,所述数据索引方案优选为应用于QQ空间的UGC搜索、微信朋友圈搜索。
步骤S20,从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据生成索引数据;
在确定所述检索请求对应的用户信息后,从源数据库获取与所述用户信息对应的待检索源数据。所述待检索源数据包括所述用户的文档及所述用户的好友关系链所拥有的文档,例如,将所述QQ空间用户信息及其好友关系链所拥有的所有文档从业务数据库中实时拉取出来,并根据拉取的文档生成索引数据。
具体的,参考图3,所述从源数据库获取与所述用户信息对应的待检索源数据的过程可以包括:
步骤S21,确定所述用户信息的源数据访问权限;
步骤S22,从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
在确定所述检索请求对应的用户信息后,确定所述用户信息的源数据访问权限,即确定所述用户信息的用户可以访问哪些源数据,根据所述源数据访问权限从所述源数据库中确定所述用户信息对应的源数据,即从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
具体的,参考图4,所述根据所述待检索源数据生成索引数据的过程包括:
步骤S23,判断所获取的待检索源数据是否满足预设条件;
所述预设条件可以是待检索源数据的数据量,或者获取待检索源数据的时间。
具体的,参考图5,所述判断所获取的待检索源数据是否满足预设条件的过程可以包括:
步骤S231,确定所获取的待检索源数据的数据量的值;
步骤S232,判断所确定的数据量的值是否大于预设阈值;
步骤S233,在所确定的数据量的值大于预设阈值时,判断所获取的待检索源数据是否满足预设条件。
当拉取到一定量的待检索源数据后,就会先将这些已经拉取的待检索源数据建立数据索引。所述预设阈值可以是100KB数据或300KB数据,根据实际待检索源数据的数据量大小而设置,或者根据需求及/或系统性能设置。在开始获取从所述源数据库获取待检索源数据时,开始记录所获取的待检索源数据的数据量的值,确定所获取的待检索源数据的数据量的值是否大于预设阈值,在所获取的待检索源数据的数据量的值大于或等于预设阈值时,判断所获取的待检索源数据是否满足预设条件;在所获取的待检索源数据的数据量的值小于预设阈值时,判断所获取的待检索源数据不满足预设条件,继续确定所获取的待检索源数据的数据量的值。在本发明其他实施例中,为了节省系统计算资源,提高系统性能,间隔一定时间(20s或30s等,根据系统性能设置),确定所获取的待检索源数据的数据量的值,并判断所确定的数据量的值是否大于预设阈值。
具体的,参考图6,所述判断所获取的待检索源数据是否满足预设条件的过程还可以包括:
步骤S234,确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间;
步骤S235,确定所述起始获取时间至当前时间的时间间隔;
步骤S236,判断所述时间间隔是否大于预设时间间隔;
步骤S237,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据是否满足预设条件。
所述预设时间间隔可以是30s或50s等,根据系统性能设置,在从源数据库获取与所述用户信息对应的待检索源数据时,开始计时。确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间,确定所述起始获取时间至当前时间的时间间隔,判断所述时间间隔是否大于所述预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件;在所述时间间隔小于或等于所述预设时间间隔时,判断所获取的待检索源数据不满足预设条件。在本发明其他实施例中,也还可以是在所述时间间隔大于预设时间间隔时,判断从所述源数据库获取的待检索源数据的数量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所获取的待检索源数据满足预设条件;在从所述源数据库获取的待检索源数据的数量的值小于或等于预设阈值时,或在所述时间间隔小于或等于所述预设时间间隔时,判断所获取的待检索源数据不满足预设条件。也还可以是,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所述时间间隔是否大于预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件;在所述时间间隔小于或等于预设时间间隔时,或在从所述源数据库获取的待检索源数据的数量的值小于或等于预设阈值时,判断所获取的待检索源数据不满足预设条件
步骤S24,在所获取的待检索源数据满足预设条件后,根据满足预设条件的待检索源数据生成索引数据。在所获取的待检索源数据满足预设条件后,即所获取的待检索源数据的数据量的值大于预设阈值时,或在所述时间间隔大于所述预设时间间隔时,根据满足预设条件的待检索源数据生成索引数据。
步骤S30,从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据。
在所述检索信息为用户输入的检索关键字时,从所述索引数据中确定与所述关键字对应的目标索引数据,并输出所述目标索引数据,以供用户浏览或下载所述索引数据。
为了更好的描述本发明数据索引过程,举一个该发明方案的应用例子:
假设有18亿QQ空间用户,平均每个用户有150篇文档,平均好友关系链为100个好友,而经常使用其中的搜索功能的用户约200万。如果按照传统的数据推送提前建索引的方法,需要索引18亿用户*100篇文档/用户=1800亿篇文档。而使用了本发明方案的按需实时拉取数据和实时索引的方法之后,每当有用户发起检索请求时,每个请求只需要索引1个用户*100个好友用户*150篇文档/用户=15000篇文档,随着发起检索请求用户的逐步增多,例如经常使用搜索功能的用户全部都发起了检索,那么只需要索引15000篇文档/1个检索用户*200万个检索用户=300亿篇文档,节约了83.33%的索引量。也就是说使用了本发明方案之后,文档索引量只会随着检索用户数线性增长,即只有当用户发起了检索,才会占用索引资源,对于索引资源的利用率较高,索引数据的曝光率也比较高。
举一个更加普通的例子:假设有5个可能的检索者User_1、User_2、User_3、User_4、User_5,他们的目标待检索数据集合分别为DataSet_1、DataSet_2、DataSet_3、DataSet_4、DataSet_5。本发明方案不会提前索引这些数据,假设整个系统最终只有用户User_1发起了检索,而其他用户都不发起检索,那么,就只有DataSet_1被本发明方案拉取回来建立索引了,而DataSet_2~DataSet_5由于User_2~User_5没有发起检索,其目标待检索数据并没有拉取回来建立索引,即只占用了传统方案1/5的数据索引资源,相应地,由于总的数据索引文档量变少了,索引数据曝光率就相应地提高了。
本实施例通过在用户发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
进一步地,基于上述数据索引方法的第一实施例,提出本发明数据索引方法的第二实施例。如图7所示,所述步骤S24之后,还可以包括:
步骤S25,根据满足预设条件的待检索源数据生成索引数据,并判断所述待检索源数据是否获取完毕;
步骤S26,在所述待检索源数据未获取完毕后,保持从所述所获取的待检索源数据中获取待检索源数据,直至所述待检索源数据获取完毕。
在所获取的待检索源数据满足预设条件后,根据满足预设条件的待检索源数据生成索引数据,并判断所述待检索数据是否获取完毕,即数据获取的策略采取异步并发的方式,每获取到所述预设阈值的待检索源数据后,根据已获取的待检索元数据将生成索引数据在所述待检索源数据未获取完毕时,同时从所述源数据库获取未获取完毕的待检索源数据,直至所述待检索源数据获取完毕。在根据满足预设条件的待检索源数据生成索引数据后,在后续获取的待检索源数据满足预设条件时,再根据满足预设条件的待检索数据生成索引数据,直至所述用户信息对应的所有索引数据生成完毕。在本实施例中通过实时获取待检索源数据,且实时根据待检索源数据生成索引数据,待检索源数据采取异步获取的方式,有效保证对于没有检索的用户,不会对其源数据生成索引数据,节省了索引数据的存储空间,进而提高了系统性能。
为了更好的说明本发明实施例,参考图8至图10,用户发起检索,通过数据拉取模块在后台以“拉取”的方式从业务数据仓库实时主动获取该用户对应的目标待检索数据集合(例如,只拉取该用户有权限的文档集合),一边拉取源数据一边实时建立索引,即,进行索引处理,供用户检索。在这种方案下,每当不同用户发起检索时,都会实时地去拉取其对应的目标待检索数据集合回来进行实时索引,“按需主动拉取”可以尽可能地减少无效索引文档量,降低索引资源开销,提高索引数据的曝光率。参考图9,具体的数据索引过程包括:
1、用户发起某一关键词的检索请求;2、检索接入模块接收到用户的检索请求时,暂时阻塞该请求,同时向数据拉取模块发送数据拉取请求;3、数据拉取模块从业务数据仓库拉取该用户对应的目标检索数据集;4、使用拉取到的目标待检索数据集生成索引数据;5、检索接入模块从前一步骤获取的目标带检索数据集的索引数据中检索出用户检索关键词的相关的结果,并将结果返回给用户。
对应地,提出本发明数据索引装置的较佳实施例。参考图11,所述数据索引装置包括接发模块10、处理模块20、获取模块30、生成模块40及输出模块50。
所述接发模块10,用于接收检索请求;
所述处理模块20,用于确定所述检索请求对应的检索信息及用户信息;
用户在使用检索工具(例如,百度、搜狗或谷歌或QQ应用中的搜索功能)时,需要检索相应的数据时,发出检索请求,例如,在QQ空间的UGC搜索、微信朋友圈搜索时,用户输入关键词,连同其好友关系链信息一起向后台发起检索请求,后台接收所述检索请求,确定所述检索请求对应的检索信息及用户信息。所述检索信息为所述关键字,所述用户信息包括发起检索请求的用户、所述用户的好友关系链等,所述用户为QQ号码或QQ昵称或微信号码或微信昵称等。在本实施例中,所述数据索引方案优选为应用于QQ空间的UGC搜索、微信朋友圈搜索。
所述获取模块30,用于从源数据库获取与所述用户信息对应的待检索源数据;
所述生成模块40,用于根据所述待检索源数据生成索引数据;
在确定所述检索请求对应的用户信息后,从源数据库获取与所述用户信息对应的待检索源数据。所述待检索源数据包括所述用户的文档及所述用户的好友关系链所拥有的文档,例如,将所述QQ空间用户信息及其好友关系链所拥有的所有文档从业务数据库中实时拉取出来,并根据拉取的文档生成索引数据。
所述处理模块40,还用于确定所述用户信息的源数据访问权限;还用于从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
在确定所述检索请求对应的用户信息后,确定所述用户信息的源数据访问权限,即确定所述用户信息可以访问哪些源数据,根据所述源数据访问权限从所述源数据库中确定所述用户信息对应的源数据,即从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
参考图12,所述生成模块40包括判断单元41和生成单元42,
所述判断单元41,用于判断所获取的待检索源数据是否满足预设条件;
所述预设条件可以是待检索源数据的数据量,或者获取待检索源数据的时间。
参考图13,所述判断单元41包括确定子单元411和判断子单元412,
所述确定子单元411,用于确定所获取的待检索源数据的数据量的值;
所述判断子单元412,用于判断所确定的数据量的值是否大于预设阈值;还用于在所确定的数据量的值大于预设阈值时,判断所获取的待检索源数据是否满足预设条件。
当拉取到一定量的待检索源数据后,就会先将这些已经拉取的待检索源数据建立数据索引。所述预设阈值可以是100KB数据或300KB数据,根据实际待检索源数据的数据量大小而设置,或者根据需求及/或系统性能设置。在开始获取从所述源数据库获取待检索源数据时,开始记录所获取的待检索源数据的数据量的值,确定所获取的待检索源数据的数据量的值是否大于预设阈值,在所获取的待检索源数据的数据量的值大于或等于预设阈值时,判断所获取的待检索源数据是否满足预设条件;在所获取的待检索源数据的数据量的值小于预设阈值时,判断所获取的待检索源数据不满足预设条件,继续确定所获取的待检索源数据的数据量的值。在本发明其他实施例中,为了节省系统计算资源,提高系统性能,间隔一定时间(20s或30s等,根据系统性能设置),确定所获取的待检索源数据的数据量的值,并判断所确定的数据量的值是否大于预设阈值。
所述确定子单元411,还用于确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间;还用于确定所述起始获取时间至当前时间的时间间隔;
所述判断子单元412,还用于判断所述时间间隔是否大于预设时间间隔;还用于在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据是否满足预设条件。
所述预设时间间隔可以是30s或50s等,根据系统性能设置,在从源数据库获取与所述用户信息对应的待检索源数据时,开始计时。确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间,确定所述起始获取时间至当前时间的时间间隔,判断所述时间间隔是否大于所述预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件;在所述时间间隔小于或等于所述预设时间间隔时,判断所获取的待检索源数据不满足预设条件。在本发明其他实施例中,也还可以是在所述时间间隔大于预设时间间隔时,判断从所述源数据库获取的待检索源数据的数量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所获取的待检索源数据满足预设条件;在从所述源数据库获取的待检索源数据的数量的值小于或等于预设阈值时,或在所述时间间隔小于或等于所述预设时间间隔时,判断所获取的待检索源数据不满足预设条件。也还可以是,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所述时间间隔是否大于预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件;在所述时间间隔小于或等于预设时间间隔时,或在从所述源数据库获取的待检索源数据的数量的值小于或等于预设阈值时,判断所获取的待检索源数据不满足预设条件
所述生成单元42,用于在所获取的待检索源数据满足预设条件后,根据所获取的待检索源数据生成索引数据。在所获取的待检索源数据满足预设条件后,即所获取的待检索源数据的数据量的值大于预设阈值时,或在所述时间间隔大于所述预设时间间隔时,根据所获取的待检索源数据生成索引数据。
所述处理模块20,还用于从所述索引数据中确定与所述检索信息对应的目标索引数据;
所述输出模块50,用于输出所述目标索引数据。
在所述检索信息为用户输入的检索关键字时,从所述索引数据中确定与所述关键字对应的目标索引数据,并输出所述目标索引数据,以供用户浏览或下载所述索引数据。
为了更好的描述本发明数据索引过程,举一个该发明方案的应用例子:
假设有18亿QQ空间用户,平均每个用户有150篇文档,平均好友关系链为100个好友,而经常使用其中的搜索功能的用户约200万。如果按照传统的数据推送提前建索引的方法,需要索引18亿用户*100篇文档/用户=1800亿篇文档。而使用了本发明方案的按需实时拉取数据和实时索引的方法之后,每当有用户发起检索请求时,每个请求只需要索引1个用户*100个好友用户*150篇文档/用户=15000篇文档,随着发起检索请求用户的逐步增多,例如经常使用搜索功能的用户全部都发起了检索,那么只需要索引15000篇文档/1个检索用户*200万个检索用户=300亿篇文档,节约了83.33%的索引量。也就是说使用了本发明方案之后,文档索引量只会随着检索用户数线性增长,即只有当用户发起了检索,才会占用索引资源,对于索引资源的利用率较高,索引数据的曝光率也比较高。
举一个更加普通的例子:假设有5个可能的检索者User_1、User_2、User_3、User_4、User_5,他们的目标待检索数据集合分别为DataSet_1、DataSet_2、DataSet_3、DataSet_4、DataSet_5。本发明方案不会提前索引这些数据,假设整个系统最终只有用户User_1发起了检索,而其他用户都不发起检索,那么,就只有DataSet_1被本发明方案拉取回来建立索引了,而DataSet_2~DataSet_5由于User_2~User_5没有发起检索,其目标待检索数据并没有拉取回来建立索引,即只占用了传统方案1/5的数据索引资源,相应地,由于总的数据索引文档量变少了,索引数据曝光率就相应地提高了。
本实施例通过在用户发起检索请求后,实时从源数据库获取与所述用户信息对应的待检索源数据,根据获取的待检索源数据生成索引数据,从所述用户信息的索引数据中确定与检索信息对应的索引数据,并输出所述索引数据。有效避免现有的索引方式下提前生成的索引数据非常大,会导致索引成本高,索引数据的曝光率低的问题。减少索引资源的消耗,降低索引成本,进而提高索引数据的曝光率。
进一步地,所述生成单元42,还用于根据满足预设条件的待检索源数据生成索引数据;
所述判断子单元412,还用于判断所述待检索源数据是否获取完毕;
所述获取模块30,还用于在所述待检索源数据未获取完毕后,保持从所述所获取的待检索源数据中获取待检索源数据,直至所述待检索源数据获取完毕。
在所获取的待检索源数据满足预设条件后,根据满足预设条件的待检索源数据生成索引数据,并判断所述待检索数据是否获取完毕,即数据获取的策略采取异步并发的方式,每获取到所述预设阈值的待检索源数据后,根据已获取的待检索元数据将生成索引数据在所述待检索源数据未获取完毕时,同时从所述源数据库获取未获取完毕的待检索源数据,直至所述待检索源数据获取完毕。在根据满足预设条件的待检索源数据生成索引数据后,在后续获取的待检索源数据满足预设条件时,再根据满足预设条件的待检索数据生成索引数据,直至所述用户信息对应的所有索引数据生成完毕。在本实施例中通过实时获取待检索源数据,且实时根据待检索源数据生成索引数据,待检索源数据采取异步获取的方式,有效保证对于没有检索的用户,不会对其源数据生成索引数据,节省了索引数据的存储空间,进而提高了系统性能。
为了更好的说明本发明实施例,参考图8至图10,用户发起检索,通过数据拉取模块在后台以“拉取”的方式从业务数据仓库实时主动获取该用户对应的目标待检索数据集合(例如,只拉取该用户有权限的文档集合),一边拉取源数据一边实时建立索引,即,进行索引处理,供用户检索。在这种方案下,每当不同用户发起检索时,都会实时地去拉取其对应的目标待检索数据集合回来进行实时索引,“按需主动拉取”可以尽可能地减少无效索引文档量,降低索引资源开销,提高索引数据的曝光率。参考图9,具体的数据索引过程包括:
1、用户发起某一关键词的检索请求;2、检索接入模块接收到用户的检索请求时,暂时阻塞该请求,同时向数据拉取模块发送数据拉取请求;3、数据拉取模块从业务数据仓库拉取该用户对应的目标检索数据集;4、使用拉取到的目标待检索数据集生成索引数据;5、检索接入模块从前一步骤获取的目标带检索数据集的索引数据中检索出用户检索关键词的相关的结果,并将结果返回给用户。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (4)
1.一种数据索引方法,其特征在于,包括步骤:
接收检索请求,确定所述检索请求对应的检索信息及发起检索请求的用户对应的用户信息;
从源数据库获取与所述用户信息对应的待检索源数据,并根据所述待检索源数据的数据量和所述待检索源数据的时间生成索引数据,并在根据所述待检索源数据的数据量和所述待检索源数据的时间生成索引数据的过程中,判断所述待检索源数据是否获取完毕,在所述待检索源数据未获取完毕时,保持执行从所述源数据库获取与所述用户信息对应的待检索源数据的步骤;
从所述索引数据中确定与所述检索信息对应的目标索引数据,并输出所述目标索引数据;
所述根据所述待检索源数据的数据量和所述待检索源数据的时间生成索引数据包括:
确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间;确定所述起始获取时间至当前时间的时间间隔;判断所述时间间隔是否大于预设时间间隔;在所述时间间隔大于预设时间间隔时,判断从所述源数据库获取的待检索源数据的数量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所获取的待检索源数据满足预设条件,根据满足预设条件的待检索源数据生成索引数据;
或;确定所获取的待检索源数据的数据量的值;判断所确定的数据量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所述时间间隔是否大于预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件,根据满足预设条件的待检索源数据生成索引数据。
2.如权利要求1所述的数据索引方法,其特征在于,所述从源数据库获取与所述用户信息对应的待检索源数据的步骤包括:
确定所述用户信息的源数据访问权限;
从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
3.一种数据索引装置,其特征在于,包括:
接发模块,用于接收检索请求;
处理模块,用于确定所述检索请求对应的检索信息及发起检索请求的用户对应的用户信息;
获取模块,用于从源数据库获取与所述用户信息对应的待检索源数据;
生成模块,用于根据所述待检索源数据的数据量和所述待检索源数据的时间生成索引数据,并在根据所述待检索源数据的数据量和所述待检索源数据的时间生成索引数据的过程中,判断所述待检索源数据是否获取完毕,在所述待检索源数据未获取完毕时,保持执行从所述源数据库获取与所述用户信息对应的待检索源数据的步骤;
所述处理模块,还用于从所述索引数据中确定与所述检索信息对应的目标索引数据;
输出模块,用于输出所述目标索引数据;
所述生成模块具体用于:
确定从源数据库获取与所述用户信息对应的待检索源数据的起始获取时间;确定所述起始获取时间至当前时间的时间间隔;判断所述时间间隔是否大于预设时间间隔;在所述时间间隔大于预设时间间隔时,判断从所述源数据库获取的待检索源数据的数量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所获取的待检索源数据满足预设条件,根据满足预设条件的待检索源数据生成索引数据;
或;确定所获取的待检索源数据的数据量的值;判断所确定的数据量的值是否大于预设阈值,在从所述源数据库获取的待检索源数据的数量的值大于预设阈值时,判断所述时间间隔是否大于预设时间间隔,在所述时间间隔大于预设时间间隔时,判断所获取的待检索源数据满足预设条件,根据满足预设条件的待检索源数据生成索引数据。
4.如权利要求3所述的数据索引装置,其特征在于,所述处理模块,还用于确定所述用户信息的源数据访问权限;还用于从所述源数据库中确定与所述源数据访问权限对应的源数据作为待检索源数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510128058.9A CN106156018B (zh) | 2015-03-23 | 2015-03-23 | 数据索引方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510128058.9A CN106156018B (zh) | 2015-03-23 | 2015-03-23 | 数据索引方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156018A CN106156018A (zh) | 2016-11-23 |
CN106156018B true CN106156018B (zh) | 2020-05-05 |
Family
ID=58064004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510128058.9A Active CN106156018B (zh) | 2015-03-23 | 2015-03-23 | 数据索引方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156018B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999963B1 (en) * | 2000-05-03 | 2006-02-14 | Microsoft Corporation | Methods, apparatus, and data structures for annotating a database design schema and/or indexing annotations |
US7536713B1 (en) * | 2002-12-11 | 2009-05-19 | Alan Bartholomew | Knowledge broadcasting and classification system |
CN102103602B (zh) * | 2009-12-17 | 2013-02-27 | 腾讯科技(深圳)有限公司 | 一种提高检索速度的系统及方法 |
CN102929876A (zh) * | 2011-08-08 | 2013-02-13 | 腾讯科技(深圳)有限公司 | 一种搜索方法、装置和系统 |
CN102955781B (zh) * | 2011-08-19 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种人物搜索方法及装置 |
CN103116579A (zh) * | 2011-11-16 | 2013-05-22 | 腾讯科技(深圳)有限公司 | 一种实时搜索方法和装置 |
CN102831252B (zh) * | 2012-09-21 | 2015-11-25 | 北京奇虎科技有限公司 | 一种用于更新索引数据库的方法及装置、搜索方法和系统 |
CN103390038B (zh) * | 2013-07-16 | 2016-03-30 | 西安交通大学 | 一种基于HBase的构建和检索增量索引的方法 |
-
2015
- 2015-03-23 CN CN201510128058.9A patent/CN106156018B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106156018A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151206B2 (en) | Method and apparatus for pushing information | |
KR102133951B1 (ko) | 짧은 링크 처리 방법, 디바이스, 및 서버 | |
EP3244312A1 (en) | A personal digital assistant | |
CN106407201B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
WO2017076004A1 (zh) | 预测预定时刻的用户位置的方法和装置 | |
US10936645B2 (en) | Method and apparatus for generating to-be-played multimedia content | |
CN110807002B (zh) | 一种基于工作流的报表生成方法、系统及设备和存储介质 | |
JP2020074193A (ja) | サーチ方法、装置、設備および不揮発性計算機メモリ | |
JP2019145093A (ja) | 情報を生成するための方法及び装置 | |
WO2014173151A1 (en) | Method, device and terminal for data processing | |
US20120296746A1 (en) | Techniques to automatically search selected content | |
CN103701875A (zh) | 一种多媒体文件推送方法及装置 | |
WO2016173185A1 (zh) | 信息推送方法和装置 | |
CN108334516B (zh) | 信息推送方法和装置 | |
WO2019118253A1 (en) | Document recall based on vector nearest neighbor search | |
CN104484413A (zh) | 一种获得搜索结果的方法和装置 | |
CN107633080B (zh) | 一种用户任务处理方法及装置 | |
CN104750500A (zh) | 启动应用程序的方法和系统 | |
CN108255898B (zh) | 页面显示方法和装置 | |
CN105955988B (zh) | 信息搜索方法和装置 | |
CN111427917A (zh) | 搜索数据处理方法及相关产品 | |
US10775966B2 (en) | Customizable autocomplete option | |
CN106156018B (zh) | 数据索引方法及装置 | |
CN108363707B (zh) | 用于生成网页的方法和装置 | |
CN113076395B (zh) | 语义模型训练、搜索显示方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |