重建索引方法及装置制造方法及图纸

技术编号:14677065 阅读:65 留言:0更新日期:2017-02-19 03:18
本申请提供一种重建索引方法及装置,所述方法包括:接收携带新的索引结构的重建索引请求,确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片;将所述主分片中记录的原始数据复制到所述副本分片上,并按照所述新的索引结构对所述原始数据建立索引,得到新的索引数据;删除所述主分片,并将所述副本分片切换为主分片。本申请通过将主分片的原始数据同步到对应的副本分片中,以对原始数据重建索引,而不需要外部客户端通过查询请求和写入请求,读取并写入原始数据的过程,从而减少了网络资源的消耗。

【技术实现步骤摘要】

本申请涉及通信
,尤其涉及一种重建索引方法及装置
技术介绍
ElasticSearch是一个基于Lucene的搜索服务器。该搜索服务器包含多个索引库,客户端首先将原始数据和索引结构写入索引库中,然后搜索服务器根据该索引结构对原始数据建立索引,得到索引数据。但当索引结构发生变化时,老的索引数据并不能满足用户的需求,搜索服务器需要对索引库的原始数据重建索引,以得到新的索引数据。在现有技术中,搜索服务器先为该老的索引库重建一个新的索引库,通过客户端读取该老的索引库中的原始数据,并将读取出来的原始数据和新的索引结构写入新的索引库中,然后根据新的索引结构对该原始数据重建索引,得到新的索引数据,并通过修改索引别名方式从该老的索引库切换到新的索引库,并删除该老的索引库。然而,由于客户端在读取和写入原始数据的过程中,都需要通过网络传输,网络资源消耗比较大,导致重建索引效率低。
技术实现思路
有鉴于此,本申请提供一种重建索引方法及装置,以解决现有的重建方式重建索引效率低的问题。根据本申请实施例的第一方面,提供一种重建索引方法,所述方法包括:接收携带新的索引结构的重建索引请求,确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片;将所述主分片中记录的原始数据复制到所述副本分片上,并按照所述新的索引结构对所述原始数据建立索引,得到新的索引数据;删除所述主分片,并将所述副本分片切换为主分片。根据本申请实施例的第二方面,提供一种重建索引装置,所述装置包括:接收单元,用于接收携带新的索引结构的重建索引请求;创建单元,用于确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片;同步单元,用于将所述主分片中记录的原始数据复制到所述副本分片上;建立索引单元,用于按照所述新的索引结构对所述原始数据建立索引,得到新的索引数据;切换单元,用于删除所述主分片,并将所述副本分片切换为主分片。应用本申请实施例,搜索服务器在接收到携带新的索引结构的重建索引请求时,确定该重建索引请求对应的主分片,并为该主分片创建副本分片;将该主分片中记录的原始数据复制到副本分片上,并按照新的索引结构对该原始数据建立索引,得到新的索引数据;删除该主分片,并将副本分片切换为主分片。基于上述实现方式,搜索服务器通过将主分片的原始数据同步到对应的副本分片中,以对原始数据重建索引,而不需要外部客户端通过查询请求和写入请求,读取并写入原始数据的过程,从而减少了网络资源的消耗。附图说明图1为本申请根据一示例性实施例示出的一种示例性的现有重建索引结构图;图2A为本申请根据一示例性实施例示出的一种重建索引方法的实施例流程图;图2B为图2A所示实施例中的一种示例性的主分片和副本分片分布图;图2C为图2A所示实施例中的一种示例性的主分片同步数据过程图;图3为本申请根据一示例性实施例示出的一种搜索服务器的硬件结构图;图4为本申请根据一示例性实施例示出的一种重建索引装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1为本申请根据一示例性实施例示出的一种示例性的现有重建索引结构图,如图1所示,搜索服务器包含有三个搜索节点node1、node2以及node3,老的索引库A包含A1、A2以及A3三个主分片,重建的一个新的索引库A′对应创建了A′1、A′2以及A′3三个主分片。客户端先向搜索服务器发送携带有索引库A标识的查询请求,搜索服务器从索引库A选择一个搜索节点,例如node1,将该查询请求发送到node1,node1将查询请求分别转发到A2所在的搜索节点node2和A3所在的搜索节点node3上,node2和node3分别将A2记录的原始数据2和A3记录的原始数据3发送到node1上,node1将A1记录的原始数据1、原始数据2以及原始数据3进行汇总,并返回给客户端;然后客户端将携带原始数据1、原始数据2、原始数据3以及新的索引结构的写入请求发送到搜索服务器,搜索服务器将原始数据1、原始数据2、原始数据3以及新的索引结构发送到node1,node1复制两份新的索引结构,并将原始数据1和一份新的索引结构存储到A′1中,并将原始数据2和一份新的索引结构发送到node2,node2将原始数据2和一份新的索引结构存储到A′2中,并将原始数据3和一份新的索引结构发送到node3,node3将原始数据3和一份新的索引结构存储到A′3中,各个搜索节点均按照新的索引结构在各主分片上建立索引,在node1接收到node2和node3返回的写入成功响应时,将写入成功响应返回给客户端;最后客户端以修改索引别名方式控制搜索服务器将索引库A切换到索引库A′,并删除索引库A。由此可知,现有重建索引的过程需要外部客户端协助完成,外部客户端需要先将原始数据读取出来,然后再将原始数据和新的索引结构写入新的索引库中,这样势必会消耗大量的网络资源传输数据,并且查询请求和写入请求均是在同一个搜索节点上进行操作,并由该搜索节点将原始数据和新的索引结构再转发到其他搜索节点,操作效率低。图2A为本申请根据一示例性实施例示出的一种重建索引方法的实施例流程图,该实施例应用在搜索服务器上,在本申请实施例中,搜索服务器为分布式服务器,包含多个搜索节点,并且该搜索服务器包含索引库,该索引库包含多个主分片,每个主分片可能分布在不同的搜索节点上,也可能分布在相同的搜索节点上,并且每个主分片对应有索引结构,且记录有原始数据和索引数据,如图2A所示,该实施例包括以下步骤:步骤201:接收携带有新的索引结构的重建索引请求,确定该重建索引请求对应的主分片,并为该主分片创建副本分片。在索引结构发生变化时,搜索服务器中原有的索引数据便无法满足用户的使用需求,需要搜索服务器重新建立索引数据,本申请通过外部客户端向搜索服务器发送重建索引请求,以触发搜索服务器的重建索引流程,并且外部客户端发送的重建索引请求中可以携带新的索引结构,以利用该新的索引结构重建索引。针对确定该重建索引请求对应的主分片,并为该主分片创建副本分片的过程,该重建索引请求中还可以携带索引库标识,搜索服务器可以先获取该索引库标识对应的索引库,将该索引库中的所有主分片确定为重建索引请求对应本文档来自技高网...
重建索引方法及装置

【技术保护点】
一种重建索引方法,所述方法应用在搜索服务器上,其特征在于,所述搜索服务器包含主分片,所述主分片对应有索引结构,且记录有原始数据和索引数据,所述方法包括:接收携带新的索引结构的重建索引请求,确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片;将所述主分片中记录的原始数据复制到所述副本分片上,并按照所述新的索引结构对所述原始数据建立索引,得到新的索引数据;删除所述主分片,并将所述副本分片切换为主分片。

【技术特征摘要】
1.一种重建索引方法,所述方法应用在搜索服务器上,其特征在于,所述搜索服务器包含主分片,所述主分片对应有索引结构,且记录有原始数据和索引数据,所述方法包括:接收携带新的索引结构的重建索引请求,确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片;将所述主分片中记录的原始数据复制到所述副本分片上,并按照所述新的索引结构对所述原始数据建立索引,得到新的索引数据;删除所述主分片,并将所述副本分片切换为主分片。2.根据权利要求1所述的方法,其特征在于,所述搜索服务器包含索引库,所述索引库包含多个主分片,所述重建索引请求中还携带有索引库标识,所述确定所述重建索引请求对应的主分片,并为所述主分片创建副本分片的过程,具体包括:获取所述索引库标识对应的索引库,将所述索引库中的所有主分片确定为所述重建索引请求对应的主分片;为所述索引库中的每个主分片创建对应的副本分片。3.根据权利要求1所述的方法,其特征在于,所述搜索服务器包含多个搜索节点,所述主分片位于一个搜索节点上,所述为所述主分片创建副本分片的过程,具体包括:在所述主分片所在的搜索节点上,为所述主分片创建对应的副本分片;或者,在所述主分片所在的搜索节点之外的其它搜索节点上,为所述主分片创建对应的副本分片。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在为所述主分片创建副本分片之后,在按照所述新的索引结构对所述原始数据建立索引之前,将所述副本分片的状态标识设置为第一标识;在按照所述新的索引结构对所述原始数据建立索引之后,将所述副本分片的状态标识设置为第二标识;在接收到搜索请求时,查询所述副本分片的状态标识;若所述状态标识为第一标识,则从所述副本分片对应的主分片获取所述搜索请求对应的索引数据;若所述状态标识为第二标识,则从所述副本分片上获取所述搜索请求对应的索引数据。5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:在为所述主分片创建副本分片之后,为所述副本分片创建一个重建索引标识;在需要将所述主分片中记录的原始数据复制到副本分片上时,判断所述副本分片是否有重建索引标识;如果有,则将所述主分片记录的原始数据复制到所述副本分片上;如果没有,则将所述主分片记录的原始数据和索引数据复制到所述副本分片上。6.一种重建索引装置,所述装置应用在搜索服务器上,其特征在于,所...

【专利技术属性】
技术研发人员:牟宣理
申请(专利权)人:杭州数梦工场科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1