CN114328521A - 索引库的更新方法及装置 - Google Patents
索引库的更新方法及装置 Download PDFInfo
- Publication number
- CN114328521A CN114328521A CN202111605264.6A CN202111605264A CN114328521A CN 114328521 A CN114328521 A CN 114328521A CN 202111605264 A CN202111605264 A CN 202111605264A CN 114328521 A CN114328521 A CN 114328521A
- Authority
- CN
- China
- Prior art keywords
- index
- data
- library
- index library
- writing
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种索引库的更新方法及装置,该方法包括:接收终端设备发送的索引库的更新文件,更新文件中包含有索引库的全量更新数据;将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据;在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库;其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。通过该方式,在写入索引库更新索引库的全量更新数据时,使用原有的查询索引库提供查询服务,从而避免了在索引库更新时对于查询性能的影响。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种索引库的更新方法及装置。
背景技术
随着互联网快速发展,数据迭代更新速度越来越快,对数据索引迭代更新速度要求越来越高。准确、高效的解决数据索引建立问题,成为当前海量数据检索系统面临的一大难题。
相关技术中,在进行全索引库文档的全量更新操作时,是通过游标遍历查询索引库中的每一条文档,再通过索引文档的标识匹配原始数据,逐条对旧索引文档进行索引更新操作,对不存在原始数据的索引文档执行删除操作。
然而,通过遍历索引文档的方式进行更新,将会产生大量的删除标记的文件,占用服务器的内存。需要进行分割(segment)操作才能能够真正删除旧索引数据。在执行segment操作时,会额外使用多一倍的内存量,可能造成服务器内存使用告警,降低索引库更新时的查询性能。
发明内容
本申请实施例提供一种索引库的更新方法及装置,以解决现有技术中在索引库更新时降低查询性能的技术问题。
第一方面,本申请实施例提供一种索引库的更新方法,所述方法包括:
接收终端设备发送的索引库的更新文件,所述更新文件中包含有所述索引库的全量更新数据;
将写入索引库设置为默认索引库并在所述写入索引库中写入所述索引库的全量更新数据;
在所述索引库的全量更新数据成功写入所述写入索引库后,将检索数据源由查询索引库切换为所述写入索引库;
其中,写入索引库在写入所述索引库的全量更新数据前为空索引库,所述查询索引库中包含更新前的原始索引数据。
一种可选的实施方式中,所述更新文件中还包括所述全量更新数据的汇总数据,所述全量更新数据和所述全量更新数据的汇总数据的用户标识和批次标识相同。
一种可选的实施方式中,在所述将写入索引库中设置为默认索引库之前,所述方法还包括:
根据新文件的发送时间和所述用户标识,校验所述更新文件的有效性和用户权限。
一种可选的实施方式中,在所述将写入索引库中设置为默认索引库之前,所述方法还包括:
开启所述写入索引库的数据写入权限并更新所述索引库的配置信息。
一种可选的实施方式中,在所述写入索引库中写入所述索引库的全量更新数据之后,所述方法还包括:
在预设的时间段后根据用户标识和批次标识对所述全量更新数据的写入进度进行检测,确定所述索引库的全量更新数据是否成功写入所述写入索引库。
一种可选的实施方式中,在所述确定所述索引库的全量更新数据是否成功写入所述写入索引库之后,所述方法还包括:
若所述索引库的全量更新数据未成功写入所述写入索引库,则将所述查询索引库恢复为所述默认索引库。
一种可选的实施方式中,所述查询索引库在所述写入索引库写入所述索引库的全量更新数据时,所述查询索引库用于提供检索服务。
第二方面,本申请实施例提供一种索引库的更新装置,所述装置包括:
接收模块,用于接收终端设备发送的索引库的更新文件,所述更新文件中包含有所述索引库的全量更新数据;
写入模块,用于将写入索引库设置为默认索引库并在所述写入索引库中写入所述索引库的全量更新数据;
切换模块,用于在所述索引库的全量更新数据成功写入所述写入索引库后,将检索数据源由查询索引库切换为所述写入索引库;
其中,写入索引库在写入所述索引库的全量更新数据前为空索引库,所述查询索引库中包含更新前的原始索引数据。
一种可选的实施方式中,所述更新文件中还包括所述全量更新数据的汇总数据,所述全量更新数据和所述全量更新数据的汇总数据的用户标识和批次标识相同。
一种可选的实施方式中,所述写入模块,还用于根据新文件的发送时间和所述用户标识,校验所述更新文件的有效性和用户权限。
一种可选的实施方式中,所述写入模块,还用于开启所述写入索引库的数据写入权限并更新所述索引库的配置信息。
一种可选的实施方式中,所述写入模块,还用于在预设的时间段后根据用户标识和批次标识对所述全量更新数据的写入进度进行检测,确定所述索引库的全量更新数据是否成功写入所述写入索引库。
一种可选的实施方式中,所述写入模块,还用于若所述索引库的全量更新数据未成功写入所述写入索引库,则将所述查询索引库恢复为所述默认索引库。
一种可选的实施方式中,所述查询索引库在所述写入索引库写入所述索引库的全量更新数据时用于提供检索服务。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器;
其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如第一方面任意一项的方法。
第四方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任意一项所述的方法。
第五方面,本发明还提供一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任意一种可能的方法。
本申请实施例提供的索引库的更新方法及装置,首先接收终端设备发送的索引库的更新文件,更新文件中包含有索引库的全量更新数据。随后,将写入索引库中设置为默认索引库并在写入索引库中写入索引库的全量更新数据。最后,在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。通过该方式,在写入索引库更新索引库的全量更新数据时,使用原有的查询索引库提供查询服务,从而避免了在数据更新时对于查询性能的影响。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种现有的索引库的更新示意图;
图2为本申请实施例提供的一种索引库的更新方法的应用场景示意图;
图3为本申请实施例提供的一种索引库的更新方法的信令交互图;
图4为本申请实施例提供的一种索引库的更新方法的流程示意图;
图5为本申请实施例提供的一种索引库的更新装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面首先对本申请涉及的技术名称进行解释。
实时搜索引擎(ElasticSearch),是一种基于Lucene全文搜索引擎的分布式可扩展的实时搜索和分析引擎。
索引库,为ElasticSearch中管理索引数据的一个逻辑单元。
默认索引库,是系统用于索引数据新增的索引库,可提供数据的增删查改服务。非默认索引库只提供检索服务,不提供索引数据新增、更新、删除服务。
随着互联网快速发展,数据迭代更新速度越来越快,对数据索引迭代更新速度要求越来越高。准确、高效的解决数据索引建立问题,成为当前海量数据检索系统面临的一大难题。
ElasticSearch是一种分布式、高扩展、高实时搜索和数据分析的企业级搜索引擎。相比较企业级搜索应用服务器(Solr),ElasticSearch能够提供海量数据量级下的近实时性能和无比强大的搜索和聚合分析的语法支持。
基于ElasticSearch的数据全量更新,可以避开业务高峰期,每天定时或者周期性将最新的全量数据替换旧数据。数据全量更新模式分为拉取和推送模式。拉取模式技术简单,但轮询间隔设置比较困难。若轮询间隔设置太大,则数据更新不及时,若轮询间隔设置太小,有可能造成数据本来并无更新而产生过多的无用请求。推送模式可以在数据有更新的情况下,主动推送数据更新,但如果在同一秒内,数据更新的太频繁,可能会造成推送风暴。
相关技术中,ElasticSearch在进行全索引库文档的全量更新操作时,是通过游标遍历查询索引库中的每一条文档,再通过索引文档的标识匹配原始数据,逐条对旧索引文档进行索引更新操作,对不存在原始数据的索引文档执行删除操作。
需要说明的是,在Elasticsearch中的已索引的文档是不可改变的。因此,需要更新已经存在的文档,并且需要重建索引或者进行替换。此外,Elasticsearch的更新操作,会将旧文档标记为已删除,并增加一个全新的文档。或者,将旧索引数据内容和更新内容进行组合,增加一个全新的文档。
图1为本申请实施例提供的一种现有的索引库的更新示意图。如图1所示,在Elasticsearch中进行索引库的更新时,首先由客户端给节点(Node)1发送更新请求。其次,Node1转发请求到主分片所在节点Node 3。再次,Node 3从主分片检索出文档,修改_source字段的JSON,然后在主分片上重建索引。若有其他进程修改了文档,它以预设次数重复重建索引,都未成功则放弃。若Node 3成功更新文档,Node 3同时转发文档的新版本到Node 1和Node 2上的复制节点以重建索引。当所有复制节点报告成功,Node 3返回成功给请求节点,然后返回给客户端。
然而,通过遍历索引文档的方式进行更新,将会产生大量的删除标记的文件,占用服务器的内存。需要进行分割(segment)操作才能能够真正删除旧索引数据。在执行segment操作时,会额外使用多一倍的内存量,可能造成服务器内存使用告警,降低索引库更新时的查询性能。
为解决上述问题,本申请实施例提供一种索引库的更新方法及装置,在进行索引库更新时,将写入索引库中设置为默认索引库并在写入索引库中写入索引库的全量更新数据。在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。通过该方式,可以在写入索引库更新索引库的全量更新数据时,使用原有的查询索引库提供查询服务,从而避免了在索引库更新时对于查询性能的影响。
下面对于本申请涉及的索引库的更新方法的应用场景进行说明。
图2为本申请实施例提供的一种索引库的更新方法的应用场景示意图。如图2所示,当需要更新索引库时,终端设备101可以向服务器102发送索引库的更新文件,该更新文件中包含有索引库的全量更新数据,来指示更新服务器102中的索引库。服务器102接收到送索引库的更新文件后,可以将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。随后,服务器102在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。
其中,终端设备101可以为手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、智慧家庭(smart home)中的无线终端等。本申请实施例中,用于实现终端的功能的装置可以是终端,也可以是能够支持终端实现该功能的装置,例如芯片系统,该装置可以被安装在终端中。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
服务器102可以是但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云。其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。
应理解,本申请技术方案的应用场景可以是图1中的索引库的更新场景,但不限于此,还可以应用于其他需要进行索引库的更新场景中。
示例性的,本申请实施例提供的索引库的更新方法的场景如下。
在第一种场景中,用户不易区分需要索引的原始数据的新增、删除、更新,定期以批量的形式将全量原始数据重新建立索引,使用新创建的索引数据作为检索数据源。
在第二种场景中,用户在原始数据发生更新时同步更新索引数据,但要求索引数据更新失败不能影响原始业务数据的修改,不会对索引数据更新失败的操作进行重试,定时以批量的形式将全量原始数据重新建立索引,使用新创建的索引数据作为检索数据源。
可以理解,上述索引库的更新方法可以通过本申请实施例提供的索引库的更新装置实现,索引库的更新装置可以是某个设备的部分或全部,例如为服务器或服务器的芯片。
下面以集成或安装有相关执行代码的服务器为例,以具体地实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的一种索引库的更新方法的信令交互图,本实施例涉及的是服务器如何对索引库进行更新的过程。如图3所示,该方法包括:
S201、终端设备向服务器发送索引库的更新文件,更新文件中包含有索引库的全量更新数据。
在本申请实施例中,当需要更新服务器中的索引库时,终端设备可以将索引库的更新文件发送给服务器,以便服务器进行更新。
在一些实施例中,更新文件中还包括全量更新数据的汇总数据,全量更新数据和全量更新数据的汇总数据的用户标识和批次标识相同。
示例性的,终端设备在汇总本次更新的索引库的全量更新数据后,可以根据预设的规范将数据封装到文件中。封装后的数据分为两类,一类文件封装需要写入索引库的全量更新数据,另一些文件封装本次更新的全量更新数据的汇总数据。
应理解,本申请实施例对于上述预设的规范不做限制,可以采用常用的封装方式。
应理解,上述服务器可以为索引数据管理系统的服务器,用于管理索引库。
S202、服务器将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。
应理解,本申请实施例对于写入索引库不做限制,只需保证在写入索引库的全量更新数据前为空索引库即可。示例性的,服务器提前为用户配置2个或多个索引库。在写入数据前选择一个未对外提供服务的非默认索引库,清空过期数据作为写入索引库。该写入索引库可以在后续写入索引库的全量更新数据。通过该方式,可以避免为用户创建大量索引库。
在本步骤中,当服务器接收到终端设备发送的索引库的更新文件后,可以将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。
在一些实施例中,在将写入索引库设置为默认索引库之前,服务器可以根据新文件的发送时间和用户标识,校验更新文件的有效性和用户权限。
示例性的,服务器中可以预先存储具备更新权限的用户,当索引库的更新文件中的用户标识与预先存储的具备更新权限的用户匹配成功后,确定该用户有权更新索引库。
示例性的,通过发送时间和用户标识,服务器可以校验一个用户是否同时只发送了一个索引库的更新文件。当一个用户同时只发送了一个索引库的更新文件时,可以确定更新文件的有效。当一个用户同时发送了多批次的索引库的更新文件时,可以确定更新文件的无效性。通过有效性验证,可以避免索引库中出现重复数据。
在一些实施例中,在将写入索引库设置为默认索引库之前,服务器可以开启写入索引库的数据写入权限并更新索引库的配置信息。
其中,索引库的配置信息可以理解为索引库的管理系统集群内各节点的配置信息。
示例性的,服务器可以获取索引库的管理系统集群内各节点的配置信息后,得到用户的数据写入权限,并更新的默认索引库配置信息,随后再开始将用户传入的索引库的更新文件并发批量写入该写入索引库,为原数据建立倒排索引。
通过控制用户的写入权限,可以避免索引库的更新文件到达后立即执行写入操作,导致索引库的全量更新数据一部分写入原默认的查询索引库,一部分写入新默认的写入索引库,从而使得查询索引库中出现重复数据,写入索引库中数据缺失。
其中,查询索引库中包含更新前的原始索引数据,查询索引库在写入索引库写入索引库的全量更新数据时用于提供检索服务。在索引数据更新期间,由写入索引库提供数据写入服务,由查询索引库提供数据查询服务。
S203、服务器在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。
在本步骤中,当服务器在写入索引库中写入索引库的全量更新数据后,还可以对索引库的全量更新数据是否成功写入该写入索引库进行验证,当确定在索引库的全量更新数据成功写入该写入索引库后,可以将检索数据源由查询索引库切换为写入索引库。
本申请实施例对于如何验证索引库的全量更新数据是否成功写入该写入索引库不做限制,在一些实施例中,服务器可以在预设的时间段后根据用户标识和批次标识对全量更新数据的写入进度进行检测,确定索引库的全量更新数据是否成功写入该写入索引库。
应理解,本申请实施例对于预设的时间段的长短不做限制,可以索引库的全量更新数据开始写入后等待的预设的时间段的长短,可以根据用户数据量进行个性化配置,保证为用户数据写入提供足够的时间。
示例性的,若本次索引库的全量更新数据全部写入该写入索引库,则可以切换写入索引库为检索数据源,使用写入索引库对外提供服务,用户可对写入索引库中的数据进行联机增删查改操作,同时保留用户上一版本的查询索引库中的索引数据用于异常情况下的数据恢复。
在一些实施例中,若索引库的全量更新数据未成功写入该写入索引库且索引库的写入检测任务的重复次数未达到,则可以推迟检测时间,一段时间后重新进行数据检测全量更新数据的写入进度。
在另一些实施例中,若索引库的全量更新数据未成功写入该写入索引库,则将查询索引库恢复为默认索引库。
示例性的,若写入检测任务的重复次数达到后索引库的全量更新数据仍未成功写入该写入索引库,则可以设置本次索引库的全量更新为失败状态,将查询索引库恢复为默认索引库,仍然使用查询索引库为用户提供服务。同时,关闭用户的批量数据写入权限。
本申请实施例提供的索引库的更新方法,首先接收终端设备发送的索引库的更新文件,更新文件中包含有索引库的全量更新数据。随后,将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。最后,在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。通过该方式,在写入索引库更新索引库的全量更新数据时,使用原有的查询索引库提供查询服务,从而避免了在数据更新时对于查询性能的影响。
在上述实施例的基础上,下面提供一种完整的索引库的更新方法。图4为本申请实施例提供的一种索引库的更新方法的流程示意图,本实施例涉及的是服务器如何对索引库进行更新的过程。如图4所示,该方法包括:
S301、接收终端设备发送的索引库的更新文件,更新文件中包含有索引库的全量更新数据;
S302、根据新文件的发送时间和用户标识,校验更新文件的有效性和用户权限。
S303、开启写入索引库的数据写入权限并更新索引库的配置信息。
S304、将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。
S305、在预设的时间段后根据用户标识和批次标识对全量更新数据的写入进度进行检测,确定索引库的全量更新数据是否成功写入该写入索引库。
若是,则执行步骤S307,若否,则执行步骤S306。
S306、将查询索引库恢复为默认索引库。
S307、将检索数据源由查询索引库切换为写入索引库。
其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。
步骤S301至步骤S307的技术名词、技术效果、技术特征,以及可选实施方式,可参照图3所示的步骤S201至S203理解,对于重复的内容,在此不再累述。
在一些可选的实施方式中,更新文件中还包括全量更新数据的汇总数据,全量更新数据和全量更新数据的汇总数据的用户标识和批次标识相同。
在一些可选的实施方式中,查询索引库在写入索引库写入索引库的全量更新数据时用于提供检索服务。
首先,本申请提供的索引库的更新方法,通过写入索引库和查询索引库对索引数据读写分离,从而在索引库的全量更新期间,为用户提供两个索引库,分别提供检索服务及索引数据写入服务,进而使得检索服务不中断,索引写入不影响查询性能,索引数据的全量更新和检索数据源的切换对用户透明。其次,本申请提供的索引库的更新方法,索引数据的全量更新可以由用户发送批量文件进行触发,数据更新频率灵活。再次,用户无需区分新增数据、更新数据和删除数据,只需将需要索引的数据全量打包发送到索引管理系统即可获取最新的数据索引。再次,可以使用Elasticsearch作为全文检索引擎,进行批量新增索引操作,降低了系统的网络、内存等资源消耗,索引入库效率明显提升。最后,可以保留上一版本的索引数据用于异常恢复。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本申请实施例提供的一种索引库的更新装置的结构示意图。该索引库的更新装置可以通过软件、硬件或者两者的结合实现,可例如上述实施例中的服务器,以执行上述实施例中的索引库的更新方法。如图5所示,该索引库的更新装置400包括:
接收模块401,用于接收终端设备发送的索引库的更新文件,更新文件中包含有索引库的全量更新数据。
写入模块402,用于将写入索引库设置为默认索引库并在写入索引库中写入索引库的全量更新数据。
切换模块403,用于在索引库的全量更新数据成功写入该写入索引库后,将检索数据源由查询索引库切换为写入索引库。
其中,写入索引库在写入索引库的全量更新数据前为空索引库,查询索引库中包含更新前的原始索引数据。
一种可选的实施方式中,更新文件中还包括全量更新数据的汇总数据,全量更新数据和全量更新数据的汇总数据的用户标识和批次标识相同。
一种可选的实施方式中,写入模块402,还用于根据新文件的发送时间和用户标识,校验更新文件的有效性和用户权限。
一种可选的实施方式中,写入模块402,还用于开启写入索引库的数据写入权限并更新索引库的配置信息。
一种可选的实施方式中,写入模块402,还用于在预设的时间段后根据用户标识和批次标识对全量更新数据的写入进度进行检测,确定索引库的全量更新数据是否成功写入该写入索引库。
一种可选的实施方式中,写入模块402,还用于若索引库的全量更新数据未成功写入该写入索引库,则将查询索引库恢复为默认索引库。
一种可选的实施方式中,查询索引库在写入索引库写入索引库的全量更新数据时用于提供检索服务。
需要说明的,图5所示实施例提供的索引库的更新装置,可用于执行上述任意实施例所提供的方法,具体实现方式和技术效果类似,这里不再进行赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。如图6所示,该电子设备可以包括:处理器501和存储器502。
存储器502,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器502可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器501用于执行存储器502存储的计算机执行指令,以实现上述索引库的更新方法;
其中,处理器501可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器502、处理器501独立实现,则通信接口、存储器502、处理器501可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器502、处理器501集成在一块芯片上实现,则通信接口、存储器502、处理器501可以通过内部接口完成通信。
本申请实施例还提供了一种芯片,包括处理器和接口。其中接口用于输入输出处理器所处理的数据或指令。处理器用于执行以上方法实施例中提供的方法。该芯片可以应用于索引库的更新装置中。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序信息,程序信息用于上述索引库的更新方法。
本申请实施例还提供一种程序,该程序在被处理器执行时用于执行以上方法实施例提供的索引库的更新方法。
本申请实施例还提供一种程序产品,例如计算机可读存储介质,该程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述方法实施例提供的索引库的更新方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种索引库的更新方法,其特征在于,所述方法包括:
接收终端设备发送的索引库的更新文件,所述更新文件中包含有所述索引库的全量更新数据;
将写入索引库设置为默认索引库并在所述写入索引库中写入所述索引库的全量更新数据;
在所述索引库的全量更新数据成功写入所述写入索引库后,将检索数据源由查询索引库切换为所述写入索引库;
其中,写入索引库在写入所述索引库的全量更新数据前为空索引库,所述查询索引库中包含更新前的原始索引数据。
2.根据权利要求1所述的方法,其特征在于,所述更新文件中还包括所述全量更新数据的汇总数据,所述全量更新数据和所述全量更新数据的汇总数据的用户标识和批次标识相同。
3.根据权利要求2所述的方法,其特征在于,在所述将写入索引库中设置为默认索引库之前,所述方法还包括:
根据新文件的发送时间和所述用户标识,校验所述更新文件的有效性和用户权限。
4.根据权利要求1所述的方法,其特征在于,在所述将写入索引库中设置为默认索引库之前,所述方法还包括:
开启所述写入索引库的数据写入权限并更新所述索引库的配置信息。
5.根据权利要求1所述的方法,其特征在于,在所述写入索引库中写入所述索引库的全量更新数据之后,所述方法还包括:
在预设的时间段后根据用户标识和批次标识对所述全量更新数据的写入进度进行检测,确定所述索引库的全量更新数据是否成功写入所述写入索引库。
6.根据权利要求5所述的方法,其特征在于,在所述确定所述索引库的全量更新数据是否成功写入所述写入索引库之后,所述方法还包括:
若所述索引库的全量更新数据未成功写入所述写入索引库,则将所述查询索引库恢复为所述默认索引库。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述查询索引库在所述写入索引库写入所述索引库的全量更新数据时用于提供检索服务。
8.一种索引库的更新装置,其特征在于,所述装置包括:
接收模块,用于接收终端设备发送的索引库的更新文件,所述更新文件中包含有所述索引库的全量更新数据;
写入模块,用于将写入索引库设置为默认索引库并在所述写入索引库中写入所述索引库的全量更新数据;
切换模块,用于在所述索引库的全量更新数据成功写入所述写入索引库后,将检索数据源由查询索引库切换为所述写入索引库;
其中,写入索引库在写入所述索引库的全量更新数据前为空索引库,所述查询索引库中包含更新前的原始索引数据。
9.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-7任意一项的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111605264.6A CN114328521A (zh) | 2021-12-24 | 2021-12-24 | 索引库的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111605264.6A CN114328521A (zh) | 2021-12-24 | 2021-12-24 | 索引库的更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328521A true CN114328521A (zh) | 2022-04-12 |
Family
ID=81013592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111605264.6A Pending CN114328521A (zh) | 2021-12-24 | 2021-12-24 | 索引库的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328521A (zh) |
-
2021
- 2021-12-24 CN CN202111605264.6A patent/CN114328521A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8332367B2 (en) | Parallel data redundancy removal | |
US11176099B2 (en) | Lockless synchronization of LSM tree metadata in a distributed system | |
JP5733124B2 (ja) | データ管理装置、データ管理システム、データ管理方法、及びプログラム | |
CN108614976A (zh) | 权限配置方法、装置及存储介质 | |
CN106484820B (zh) | 一种重命名方法、访问方法及装置 | |
US20140304384A1 (en) | Uploading large content items | |
CN102938784A (zh) | 应用于分布式存储系统中的数据存储方法和系统 | |
US10073969B1 (en) | File system metadata extension utilizable with object store | |
US20160179789A1 (en) | Content localization using fallback translations | |
JP2012089094A5 (zh) | ||
US10515228B2 (en) | Commit and rollback of data streams provided by partially trusted entities | |
US20160140141A1 (en) | File lookup in a distributed file system | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN112912870A (zh) | 租户标识符的转换 | |
CN104067241A (zh) | 同步本地存储设备和远程存储设备 | |
CN112115521B (zh) | 数据访问方法及装置 | |
CN114328521A (zh) | 索引库的更新方法及装置 | |
CN106557263B (zh) | 用于在数据块删除中检查伪共享的方法及设备 | |
US11151110B2 (en) | Identification of records for post-cloning tenant identifier translation | |
CN113806309A (zh) | 基于分布式锁的元数据删除方法、系统、终端及存储介质 | |
US20170091253A1 (en) | Interrupted synchronization detection and recovery | |
CN112445783A (zh) | 一种用于数据库更新的方法、装置和服务器 | |
CN111782634A (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
CN112181899A (zh) | 一种元数据的处理方法、装置及计算机可读存储介质 | |
CN113364875B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |