一种索引更新系统、方法及装置与流程

文档序号:12863983阅读:191来源:国知局
一种索引更新系统、方法及装置与流程

本发明涉及检索技术领域,特别是涉及一种索引更新系统、方法及装置。



背景技术:

索引文件用于记录存储的数据文件与索引的对应关系,索引指向所对应的数据文件的地址,即用户可以通过索引文件中的索引便可以找到该索引所对应的数据文件。当数据库服务器中存储的数据文件有更新时,索引文件中该数据文件所对应的索引也需要进行相应地更新,这样,用户需要查找所更新的数据文件时可以通过更新后的索引找到。

目前,索引的更新需要通过rsync(数据同步)的方式将数据库服务器上的数据文件同步至客户服务器,进而才能对客户服务器中的索引进行更新。其中,rsync更新的方式需要在数据库服务器和为用户客户端提供资源的客户服务器分别安装rsync软件,通过rsync建立联系。

然而,发明人在实现本发明的过程中发现,现有技术至少存在以下问题:当需要更新的数据文件较大时,数据库服务器需要分别将更新的数据文件通过rsync建立的联系传输至客户服务器,然后才能对索引进行更新,而这样较慢传输的数据文件会导致该数据文件在索引中的更新不及时。并且,需要更新的数据文件较大时会造成数据库服务器的负载压力过大,影响数据库服务器运行状态,从而使得数据文件传输的效率降低,同样导致索引更新不及时,从而影响用户体验。



技术实现要素:

本发明实施例的目的在于提供一种索引更新系统、方法及装置,以解决索引更新不及时的问题。具体技术方案如下:

第一方面,本发明实施例提供了一种索引更新系统,所述系统包括:数据库服务器、kafka服务器和客户服务器;其中,

所述数据库服务器,用于检测是否存在发生数据更新的目标数据文件,若存在,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;

所述kafka服务器,用于接收并存储所述数据库服务器发送的所述目标数据更新消息;

所述客户服务器,用于从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。

可选地,所述数据库服务器,还用于将所述目标数据文件发送至所述客户服务器;

所述客户服务器,还用于在从所述kafka服务器获取所述目标数据更新消息之后,判断本地是否已存储所述目标数据文件;

如果本地未存储所述目标数据文件,从所述目标数据更新消息中获取第一存储地址,并确定所述目标索引指向所述第一存储地址,其中,所述第一存储地址为所述目标数据文件在所述数据库服务器中的存储地址;

如果本地已存储所述目标数据文件,从所述目标数据更新消息中获取第二存储地址,并确定所述目标索引指向所述第二存储地址,其中,所述第二存储地址为所述目标数据文件在本地的存储地址。

可选地,所述客户服务器,还用于在确定所述目标索引指向第一存储地址之后,判断本地是否已存储所述目标数据文件,如果本地已存储,获取所述目标数据文件在本地的第二存储地址;确定所述目标索引指向所述第二存储地址。

可选地,所述客户服务器,存储至少两套索引文件:主用索引文件和备用索引文件;用于对所述备用索引文件进行更新;将所述主用索引文件替换为所述备用索引文件;对所述主用索引文件进行更新。

第二方面,本发明实施例提供了一种索引更新方法,应用于客户服务器,所述方法包括:

从kafka服务器获取目标数据文件的目标数据更新消息,其中,所述目标数据文件为发生数据更新的数据文件,所述kafka服务器用于接收并存储数据库服务器发送的所述目标数据更新消息,所述数据库服务器用于在检测到发生数据更新的目标数据文件后获得所述目标数据文件的目标数据更新消息并将所述目标数据更新消息发送至所述kafka服务器;

根据所述目标数据更新信息确定所述目标数据文件的目标索引;

以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。

可选地,所述方法还包括:

接收并存储所述数据库服务器发送的所述目标数据文件;

所述根据所述目标数据更新信息确定所述目标数据文件的目标索引的步骤,包括:

判断本地是否已存储所述目标数据文件;

如果本地未存储所述目标数据文件,从所述目标数据更新消息中获取第一存储地址,并确定所述目标索引指向所述第一存储地址,其中,所述第一存储地址为所述目标数据文件在所述数据库服务器中的存储地址;

如果本地已存储所述目标数据文件,从所述目标数据更新消息中获取第二存储地址,并确定所述目标索引指向所述第二存储地址,其中,所述第二存储地址为所述目标数据文件在本地的存储地址。

可选地,所述确定所述目标索引指向所述第一存储地址的步骤之后,所述方法还包括:

判断本地是否已存储所述目标数据文件;

如果本地已存储,获取所述目标数据文件在本地的第二存储地址;

确定所述目标索引指向所述第二存储地址。

可选地,存储至少两套索引文件:主用索引文件和备用索引文件;

所述方法还包括:

对所述备用索引文件进行更新;

将所述主用索引文件替换为所述备用索引文件;

对所述主用索引文件进行更新。

第三方面,本发明实施例提供了一种索引更新装置,应用于客户服务器,所述装置包括:

获取模块,用于从kafka服务器获取目标数据文件的目标数据更新消息,其中,所述目标数据文件为发生数据更新的数据文件,所述kafka服务器用于接收并存储数据库服务器发送的所述目标数据更新消息,所述数据库服务器用于在检测到发生数据更新的目标数据文件后获得所述目标数据文件的目标数据更新消息并将所述目标数据更新消息发送至所述kafka服务器;

确定模块,用于根据所述目标数据更新信息确定所述目标数据文件的目标索引;

第一更新模块,用于以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。

可选地,所述装置还包括:

接收模块,用于接收并存储所述数据库服务器发送的目标数据文件;

所述确定模块包括:

判断子模块,用于判断本地是否已存储所述目标数据文件;

第一确定子模块,用于在本地未存储所述目标数据文件时,从所述目标数据更新消息中获取第一存储地址,并确定所述目标索引指向所述第一存储地址,其中,所述第一存储地址为所述目标数据文件在所述数据库服务器中的存储地址;

第二确定子模块,用于在本地已存储所述目标数据文件时,从所述目标数据更新消息中获取第二存储地址,并确定所述目标索引指向所述第二存储地址,其中,所述第二存储地址为所述目标数据文件在本地的存储地址。

可选地,所述第一确定子模块还包括:

判断单元,用于判断本地是否已存储所述目标数据文件;

获取单元,用于在本地已存储所述目标数据文件的情况下,获取所述目标数据文件在本地的第二存储地址;

确定单元,用于确定所述目标索引指向所述第二存储地址。

可选地,所述装置还包括:

存储单元,用于存储至少两套索引文件:主用索引文件和备用索引文件;

第二更新模块,用于对所述备用索引文件进行更新;

替换模块,用于将所述主用索引文件替换为所述备用索引文件;

第三更新模块,用于对所述主用索引文件进行更新。

第四方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,执行上述任一所述的索引更新方法。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的索引更新方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的索引更新方法。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,进而提高用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种索引更新系统的一种场景图;

图2为本发明实施例提供的一种索引更新系统的一种系统图;

图3为本发明实施例提供的一种索引更新方法的一种流程图;

图4为本发明实施例提供的一种索引更新装置的一种结构示意图;

图5为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了解决现有技术中索引更新不及时的问题,从而提高用户体验,本发明实施例提供了一种索引更新系统、方法及装置。

如图1所示,本发明实施例的应用场景包括数据库服务器100、kafka服务器200及客户服务器300,数据库服务器100、kafka服务器200及客户服务器300三者相互之间通过网络连接,可相互之间进行通讯。

其中,数据库服务器100可以为数据库,用来存储各种数据文件;客户服务器300与客户终端相连接,为客户终端提供相应的网络服务,例如,用户通过终端电脑在爱奇艺网站上观看一视频时,该终端电脑所连接的客户服务器300便提供该视频的视频资源。

索引文件存储在客户服务器300中,为用户提供索引服务。当有数据文件更新时,所更新的数据文件存储在数据库服务器100中,并且数据库服务器100需要将更新的数据文件发送至客户服务器300,这样,客户服务器300才能对索引文件进行更新。然而这种索引更新方式会因为数据文件的传输而导致索引更新不及时。

因此,为了解决索引更新不及时的问题,在本发明实施例中数据库服务器100在检测到存在数据文件发生数据更新时,会产生相应的数据更新消息,并将该数据更新消息发送至kafka服务器200,以使得kafka服务器200存储该数据更新消息,客户服务器300会从kafka服务器200中获取该数据更新消息,并从该数据更新消息中确定索引,最后以确定的索引来更新本地存储的索引文件。

如图2所示,本发明实施例提供的一种索引更新系统,包括:数据库服务器100、kafka服务器200和客户服务器300;下面就索引更新系统所包括的上述三种服务器分别展开说明。

数据库服务器100,用于检测是否存在发生数据更新的目标数据文件,若存在,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器200。

其中,目标数据文件可以包括各种类型的文件,例如:文档文件、视频文件、音频文件、图片文件等。

数据更新是指目标数据文件发生相应地改变,例如,可以包括:目标数据文件的增加、目标数据文件的删除、目标数据文件的移动、目标数据文件的替换等目标数据文件的改变方式。

示例地,增加的目标数据文件可以是任意类型的数据文件,例如,在爱奇艺的视频网站上更新了一集电视剧,此时,数据更新是增加的一个视频文件;目标数据文件的删除可以是永久性地删除,还可以是可恢复性地删除,这两种情况的删除均可认为是目标数据文件发生了数据更新;目标数据文件的移动可以是目标数据文件从一个文件夹移动至另一个文件夹,还可以是从一个存储单元移动至另一个存储单元;目标数据文件的替换可以是指运维人员将目标数据文件替换已存储的另一个数据文件,例如,爱奇艺网站的后台工作人员用一电影的完整版的视频文件替换已存储的该电影的非完整版的视频文件。

目标数据文件在发生数据更新时,该目标数据文件可以产生相应的目标数据更新消息,该目标数据更新消息中可以包括目标数据文件的相关信息,例如:该目标数据文件的标识、大小、关键字信息、存储地址等。

一般情况下,目标数据文件发生改变是由工作人员或者运维人员人为操作所致,因此,对于数据库服务器100来说,可以在预设的时间点或者时间周期检测是否存在发生数据更新的目标数据文件,其中,预设的时间点或者时间周期可以是自定义设定的。

在数据库服务器100检测到存在发生数据更新的目标数据文件时,数据库服务器100获取该目标数据文件所产生的目标数据更新消息,并将该目标数据更新消息发送至kafka服务器200。

可以理解的是,在获取到目标数据更新消息时,同时获取到该目标数据更新消息所包括的目标数据文件的相关信息。

kafka服务器200接收数据库服务器100发送的目标数据更新消息,并将该目标数据更新消息进行存储。

可选地,kafka服务器200可以为kafka集群中的任一服务器,kafka集群将所接收到的数据更新消息按照预设的算法进行区分,并存储在不同的位置。kafka的消息队列采用极简的数据结构,当有新的数据更新消息时,则将更新的数据添加至既有文件的尾部,读取消息时按照位移顺序进行读取,这样,可以不需要对复杂的随即读取的结构进行维护,极大地减轻了kafka自身的负载压力。

kafka集群包括多个kafka服务器,形成分布式结构。这样,即使在接收的数据更新消息比较多的情况下,多个kafka服务器可以同时进行接收并存储数据更新消息的操作,不会对任何kafka服务器造成压力过大,从而也不会导致负载过高。

针对于客户服务器300,从kafka服务器200获取目标数据更新消息;一种实施方式中,客户服务器300可以按照预设的时间点或者时间周期从kafka服务器200获取目标数据更新消息,其中,预设的时间点或者时间周期可以是自定义设定的。

客户服务器300在获取到目标数据更新消息之后,同时也可以获取到目标数据更新消息所包括的相应的目标数据文件的相关信息:目标数据文件的标识、大小、关键字信息、存储地址等;根据所获取的目标数据文件的存储地址,则可确定该目标数据文件的目标索引,即目标索引所指向的是该目标数据文件的存储地址。

示例地,在目标数据更新消息中所包括的目标数据文件的存储地址为:c:\documentsandsettings\allusers\applicationdata\mysql\data,那么,该目标数据文件的目标索引所指向的存储地址同样为:c:\documentsandsettings\allusers\applicationdata\mysql\data。

需要说明的是,当目标数据文件发生数据更新具体为目标数据文件被删除时,此时,所获取的目标数据更新消息中的存储地址为无,即目标索引不指向任何存储地址。

客户服务器300在确定目标数据文件的目标索引之后,将以目标索引替换该目标数据文件在更新之前所对应的索引,这样,便完成了对客户服务器300本地存储的索引文件的更新。

另外,可以理解的是,在本发明实施例中,目标索引所指向的存储地址可以为目标数据文件在数据库服务器100中所存储的地址,还可以为目标数据文件在客户服务器300中的存储地址。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,提高用户体验。

第一种实施方式中,数据库服务器100还可以将所更新的目标数据文件发送至客户服务器300,客户服务器300则接收并存储所更新的目标数据文件。

客户服务器300在从kafka服务器200获取到目标数据更新消息之后,还可以判断本地是否已存储该目标数据更新消息所对应的目标数据文件。

需要说明的是,在这种实施方式中,目标数据更新消息中的存储地址包括目标数据文件在数据库服务器100中的存储地址和目标数据文件在客户服务器300中的存储地址。

如果判断出本地未存储目标数据文件时,则从目标数据更新消息中获取第一存储地址,并将该第一存储地址确定为目标索引所指向的地址,其中,该第一存储地址即为目标数据更新消息中所包括的目标数据文件在数据库服务器100中的存储地址。

如果判断出本地已存储目标数据文件时,则从目标数据更新消息中获取第二存储地址,并将该第二存储地址确定为目标索引所指向的地址,其中,该第二存储地址即为目标数据更新消息中所包括的目标数据文件在客户服务器300本地的存储地址。

在该实施方式中,用户通过索引文件搜索所需的数据文件,并且,该数据文件同时在数据库服务器100以及客户服务器300均有相应的存储资源,那么,可选地,该数据文件所对应的索引所指向的地址为客户服务器300中的存储地址时,用户可以更及时地从客户服务器300中获取该数据文件,缩短了用户搜索并获取数据文件的时间,提高了用户体验。

在第二种具体实施方式中,客户服务器300在确定目标索引指向第一存储地址之后,即确定目标索引指向的地址为目标数据文件在数据库服务器100中的存储地址之后,判断本地是否已存储目标数据文件,可选地,可以在预设的时间点或者时间周期,判断本地是否已存储目标数据文件,其中,预设的时间点或者时间周期均可以是自定义设定的。

如果判断出本地已存储目标数据文件时,则可以获取该目标数据文件在客户服务器300本地的存储地址,即第二存储地址;此时,便可以将目标索引所指向的地址确定为第二存储地址。

在该实施方式中,用户通过索引文件搜索所需的数据文件,并且,该数据文件同时在数据库服务器100以及客户服务器300均有相应的存储资源,那么,可选地,该数据文件所对应的索引所指向的地址为客户服务器300中的存储地址时,用户可以更及时地从客户服务器300中获取该数据文件,缩短了用户搜索并获取数据文件的时间,提高了用户体验。

第三种实施方式中,客户服务器300中存储的索引文件至少有两套,其中一套作为主用索引文件,该主用索引文件是当前提供索引服务的索引文件;主用索引文件以外存储的其他索引文件均为备用索引文件。并且,主用索引文件和备用索引文件互为主备,当备用索引文件替换主用索引文件提供索引服务时,则此时,该备用索引文件成为主用索引文件,主用索引文件则成为备用索引文件。

示例地,客户服务器300中存储有两套索引文件:第一索引文件和第二索引文件,当前情况下,第一索引文件作为主用索引文件提供索引服务,第二索引文件则作为备用索引文件。并且,第一索引文件与第二索引文件互为主备。当第二索引文件替换第一索引文件提供索引服务时,第二索引文件成为主用索引文件,第一索引文件成为备用索引文件。

客户服务器300在进行索引文件的更新时,首先对备用索引文件进行相应地更新,在备用索引文件完成更新之后,将更新后的备用索引文件替换主用索引文件,继续提供索引服务;而对主用索引文件进行与备用索引文件相同的更新。

示例地,第一索引文件为主用索引文件,第二索引文件则为备用索引文件;在客户服务器300进行索引文件的更新时,首先对第二索引文件进行更新,在第二索引文件更新完成之后,第二索引文件替换第一索引文件提供索引服务,此时,第二索引文件成为主用索引文件,第一索引文件成为备用索引文件;然后,对第一索引文件进行更新,这样,便完成了第一索引文件与第二索引文件的更新。

在该实施例中,在进行索引文件的更新的同时,客户服务器300可以不中断为用户提供索引服务,提高了用户体验。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,进而提高用户体验。

结合上述系统实施例,本发明实施例还提供一种索引更新方法,如图3所示,应用于客户服务器,所述方法包括:

s301,从kafka服务器获取目标数据文件的目标数据更新消息,其中,所述目标数据文件为发生数据更新的数据文件,所述kafka服务器用于接收并存储数据库服务器发送的所述目标数据更新消息,所述数据库服务器用于在检测到发生数据更新的目标数据文件后获得所述目标数据文件的目标数据更新消息并将所述目标数据更新消息发送至所述kafka服务器;

s302,根据所述目标数据更新信息确定所述目标数据文件的目标索引;

s303,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。

具体可以参见图2及图2对应的实施例,这里不再赘述。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,进而提高用户体验。

结合上述实施例,在本发明提供的又一实施例中,在步骤s301之后,该方法还可以包括:

接收并存储所述数据库服务器发送的所述目标数据文件。

步骤s302可以包括:

判断本地是否已存储所述目标数据文件;

如果本地未存储所述目标数据文件,从所述目标数据更新消息中获取第一存储地址,并确定所述目标索引指向所述第一存储地址,其中,所述第一存储地址为所述目标数据文件在所述数据库服务器中的存储地址;

如果本地已存储所述目标数据文件,从所述目标数据更新消息中获取第二存储地址,并确定所述目标索引指向所述第二存储地址,其中,所述第二存储地址为所述目标数据文件在本地的存储地址。

具体可以参见图2及图2对应的实施例中的第一种实施方式,这里不再赘述。

通过该实施例,可以缩短了用户搜索并获取数据文件的时间,进而可以提高用户体验。

可选地,一种实施方式中,所述确定所述目标索引指向所述第一存储地址的步骤之后,所述方法还可以包括:

判断本地是否已存储所述目标数据文件;

如果本地已存储,获取所述目标数据文件在本地的第二存储地址;

确定所述目标索引指向所述第二存储地址。

具体可以参见图2及图2对应的实施例中的第二种实施方式,这里不再赘述。通过该实施例,可以缩短了用户搜索并获取数据文件的时间,进而可以提高用户体验。

可选地,一种实施方式中,可以存储至少两套索引文件:主用索引文件和备用索引文件;所述方法还可以包括:

对所述备用索引文件进行更新;

将所述主用索引文件替换为所述备用索引文件;

对所述主用索引文件进行更新。

具体可以参见图2及图2对应的实施例中的第三种实施方式,这里不再赘述。

通过该实施例,在进行索引文件的更新的同时,可以不中断为用户提供索引服务,进而可以提高用户体验。

结合上述系统实施例,本发明实施例还提供一种索引更新装置,如图4所示,应用于客户服务器,所述装置包括:

获取模块310,用于从kafka服务器获取目标数据文件的目标数据更新消息,其中,所述目标数据文件为发生数据更新的数据文件,所述kafka服务器用于接收并存储数据库服务器发送的所述目标数据更新消息,所述数据库服务器用于在检测到发生数据更新的目标数据文件后获得所述目标数据文件的目标数据更新消息并将所述目标数据更新消息发送至所述kafka服务器;

确定模块320,用于根据所述目标数据更新信息确定所述目标数据文件的目标索引;

第一更新模块330,用于以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。

具体可以参见图2及图2对应的实施例,这里不再赘述。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,进而提高用户体验。

结合上述实施例,在本发明提供的又一实施例中,该装置还可以包括:

接收模块,用于接收并存储所述数据库服务器发送的目标数据文件。

所述确定模块320可以包括:

判断子模块,用于判断本地是否已存储所述目标数据文件;

第一确定子模块,用于在本地未存储所述目标数据文件时,从所述目标数据更新消息中获取第一存储地址,并确定所述目标索引指向所述第一存储地址,其中,所述第一存储地址为所述目标数据文件在所述数据库服务器中的存储地址;

第二确定子模块,用于在本地已存储所述目标数据文件时,从所述目标数据更新消息中获取第二存储地址,并确定所述目标索引指向所述第二存储地址,其中,所述第二存储地址为所述目标数据文件在本地的存储地址。

具体可以参见图2及图2对应的实施例中的第一种实施方式,这里不再赘述。

通过该实施例,可以缩短了用户搜索并获取数据文件的时间,进而可以提高用户体验。

可选地,一种实施方式中,所述第一确定子模块还可以包括:

判断单元,用于判断本地是否已存储所述目标数据文件;

获取单元,用于在本地已存储所述目标数据文件的情况下,获取所述目标数据文件在本地的第二存储地址;

确定单元,用于确定所述目标索引指向所述第二存储地址。

具体可以参见图2及图2对应的实施例中的第二种实施方式,这里不再赘述。

通过该实施例,可以缩短了用户搜索并获取数据文件的时间,进而可以提高用户体验。

可选地,一种实施方式中,所述装置还可以包括:

存储单元,用于存储至少两套索引文件:主用索引文件和备用索引文件;

第二更新模块,用于对所述备用索引文件进行更新;

替换模块,用于将所述主用索引文件替换为所述备用索引文件;

第三更新模块,用于对所述主用索引文件进行更新。

具体可以参见图2及图2对应的实施例中的第三种实施方式,这里不再赘述。

通过该实施例,在进行索引文件的更新的同时,可以不中断为用户提供索引服务,进而可以提高用户体验。

本发明实施例还提供了一种电子设备,如图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信,

存储器530,用于存放计算机程序;

处理器510,用于执行存储器530上所存放的程序时,实现如下步骤:

从kafka服务器获取目标数据文件的目标数据更新消息,其中,所述目标数据文件为发生数据更新的数据文件,所述kafka服务器用于接收并存储数据库服务器发送的所述目标数据更新消息,所述数据库服务器用于检测是否存在发生数据更新的目标数据文件,若存在,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;

根据所述目标数据更新信息确定所述目标数据文件的目标索引;

以所述目标索引更新本地存储的索引文件。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的索引更新方法方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的索引更新方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本发明实施例提供的技术方案中,数据库服务器检测到存在发生数据更新的目标数据文件时,获得所述目标数据文件的目标数据更新消息,并将所述目标数据更新消息发送至所述kafka服务器;所述kafka服务器接收并存储所述数据库服务器发送的所述目标数据更新消息;所述客户服务器从所述kafka服务器获取所述目标数据更新消息,并根据所述目标数据更新消息确定所述目标数据文件的目标索引,以所述目标索引更新本地存储的索引文件中的所述目标数据文件的索引。本发明实施例提供的方案中采用数据更新消息传递的方式使得客户服务器确定更新的数据文件的索引,进而更新索引文件;因为消息传递耗时短,并且不会造成数据库服务器的负载压力过大从而影响消息传递的效率,因此可以及时地进行索引更新,进而提高用户体验。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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