CN101295323B - 一种用于索引更新的处理方法和*** - Google Patents

一种用于索引更新的处理方法和*** Download PDF

Info

Publication number
CN101295323B
CN101295323B CN2008101291333A CN200810129133A CN101295323B CN 101295323 B CN101295323 B CN 101295323B CN 2008101291333 A CN2008101291333 A CN 2008101291333A CN 200810129133 A CN200810129133 A CN 200810129133A CN 101295323 B CN101295323 B CN 101295323B
Authority
CN
China
Prior art keywords
index
data
new data
subsystem
disk
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
Application number
CN2008101291333A
Other languages
English (en)
Other versions
CN101295323A (zh
Inventor
袁哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Shiji Guangsu Information Technology Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN2008101291333A priority Critical patent/CN101295323B/zh
Publication of CN101295323A publication Critical patent/CN101295323A/zh
Application granted granted Critical
Publication of CN101295323B publication Critical patent/CN101295323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于索引更新的处理***,包括:数据接收子***,用于接收新数据;数据分发子***,用于对新数据进行分发;多级索引内存子***,用于通过第一级索引对来自数据分发子***的新数据进行接收,并根据所接收的新数据对第一级索引进行重建;在新数据由第一级索引逐级传递到其他各级索引时,根据所传递的新数据对其他各级索引依次进行重建;磁盘索引子***,用于根据来自数据分发子***或多级索引内存子***的新数据,对磁盘索引进行重建。本发明还提供了一种索引用于更新的处理方法,采用多级索引的内存索引结构,提高了索引重建速度和信息搜索的时效性,增加了用户的使用体验。

Description

一种用于索引更新的处理方法和***
技术领域
本发明涉及互联网中的信息搜索技术,尤其涉及一种用于索引更新的处理方法和***。
背景技术
随着互联网技术的发展,为了满足互联网用户对不同领域信息的获取需求,信息搜索技术成为当前非常热门的互联网技术之一。互联网中的信息搜索服务是由互联网中的各种搜索引擎提供的,搜索引擎的数据库中集中了大量的信息,搜索引擎的功能是从数据库中搜索用户所需的信息。
对于搜索引擎中新入库的信息,通常需要进行切词、编码、顺排、倒排等操作,生成索引和对应的数据,并根据生成的索引和数据对原来的索引进行重建。对于数据量较小的信息,上述的切词、编码、顺排、倒排等操作可以在内存中完成,且生成的索引和数据也可以存储在内存中;而对于数据量较大的信息,则是由磁盘对生成的索引和数据进行存储。因此,现有技术中通常是采用内存和磁盘相结合的构架进行信息存储的,搜索引擎所接收的新数据先由内存进行加载,再定期将内存中加载的新数据发送给磁盘进行加载;当然,内存和磁盘中的索引也需要随着新数据的加载进行更新重建。具体的处理流程如图1所示,主要包括以下步骤:
步骤101,判断是否触发磁盘索引更新,如果是,则转到步骤102;否则,转到步骤103。
磁盘索引更新的操作是由设定的磁盘更新周期来触发的,在每次磁盘更新周期结束的时刻即为磁盘索引更新的时间点,搜索引擎开始触发进行磁盘索引更新的操作。
步骤102,搜索引擎将内存所存储的在最近一个磁盘更新周期内接收到的所有新数据发送给磁盘,由磁盘根据所接收的新数据进行磁盘索引的重建,并进行新数据的加载,然后结束当前流程。其中,搜索引擎接收到的新数据中包括:删除文档列表、新增文档列表和更新文档列表的至少一种。
步骤103,搜索引擎将接收的新数据提供给内存。
步骤104,内存根据接收的新数据进行内存索引的重建,并进行新数据的加载。
在实际应用中,用户对诸如知识型搜索、新闻搜索和论坛搜索等等的搜索结果的时效性要求较高,希望最新的信息能够尽可能的及时搜索到。这就要求搜索引擎能够以尽可能快的更新速度完成新信息的索引更新重建和检索服务的提供。虽然内存索引重建的速度比磁盘索引重建的速度更快,但是由于内存每接收到新数据时就得进行索引重建,因此,内存索引重建的时间也会随着内存中数据量的增大而线性增长;也就是说,在一个磁盘更新周期内,内存中的数据更新速度会越来越慢。
由此可知,由于现有技术中搜索引擎会先将数据发送至内存,这样,内存索引更新的速度必然会随着内存中的数据量的不断增大而变得越来越慢,从而导致现有技术达不到用户对搜索结果的高时效性要求,给用户带来不便。
发明内容
有鉴于此,本发明的主要目的在于提供一种用于索引更新的处理方法和***,以解决现有技术中由于内存索引的更新速度慢而导致信息搜索时效性不高的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种用于索引更新的处理***,该***包括:
数据接收子***,用于接收新数据,所述新数据包括删除文档列表、新增文档列表和更新文档列表的至少一种;
数据分发子***,用于对所述新数据进行分发;
多级索引内存子***,包括多级索引,且所述多级索引中的各级索引的数据容量从上级到下级依次递增,数据由上级索引到下级索引逐级传递;
所述多级索引内存子***包括:数据传递模块、索引重建模块和索引切换模块,其中,
所述数据传递模块,用于通过第一级索引对来自所述数据分发子***的新数据进行接收,并将所述新数据由所述第一级索引逐级传递到其他各级索引;
所述索引重建模块,与数据传递模块相连,用于根据所述第一级索引接收的新数据对所述第一级索引进行重建,并在所述新数据由所述第一级索引逐级传递到其他各级索引时,根据所传递的新数据对所述其他各级索引依次进行重建;所述各级索引由主索引和备索引构成,索引的重建是对所述主索引和备索引中的其中一个索引进行重建;在索引重建完毕之后,将所述主索引和备索引更新为重建后的索引;
所述索引切换模块,与所述索引重建模块相连,用于在所述各级索引的主索引和备索引中的其中一个索引进行重建时,将服务切换到另一个索引。
所述***还包括:磁盘索引子***,用于根据来自所述数据分发子***或多级索引内存子***的新数据,对磁盘索引进行重建。
所述数据接收子***进一步包括:
数据检测模块,用于检测每个检测周期内的新数据;
数据合并模块,用于所述数据检测模块在检测周期内检测到多批新数据时,对所述多批新数据进行合并,并将所述合并后的新数据提供给所述数据分发子***。
所述多级索引内存子***进一步包括:
管理模块,与所述数据传递模块和索引重建模块相连,用于通过循环文件对所述多级索引内存子***中的文档进行管理,并通过全局文档表对所述多级索引内存子***中的索引进行管理。
本发明还提供了一种用于索引更新的处理方法,该方法包括:
通过多级索引内存子***的多级索引中的第一级索引接收来自数据分发子***的新数据,所述新数据包括删除文档列表、新增文档列表和更新文档列表的至少一种,且所述多级索引中的各级索引的数据容量从上级到下级依次递增,数据由上级索引到下级索引逐级传递;
根据所接收的新数据对所述第一级索引进行重建;
在所述新数据由所述第一级索引逐级传递到其他各级索引时,根据所述新数据对所述其他各级索引依次进行重建;
所述各级索引由主索引和备索引构成,索引的重建是对所述主索引和备索引中的其中一个索引进行重建,并将服务切换到另一个索引,在索引重建完毕之后,将所述主索引和备索引更新为重建后的索引。
所述新数据由第一级索引逐级传递到其他各级索引,具体包括:在上级索引的数据量达到设定的门限值时,将所述上级索引中的新数据传递到下级索引,触发所述下级索引进行重建,并将所述上级索引中已传递的新数据删除。
该方法进一步包括:在所述多级索引中的最后一级索引的数据量达到设定的门限值时,将所述最后一级索引中的新数据传递给磁盘索引子***,触发所述磁盘索引子***进行磁盘索引重建,并将所述最后一级索引中已传递的新数据删除。
该方法进一步包括:所述数据分发子***根据所述删除文档列表、新增文档列表和更新文档列表生成由文档标识组成的序列文件,并在每次磁盘更新周期结束时刻,将本次磁盘更新周期内接收的新数据和生成的序列文件发送给磁盘索引子***,触发所述磁盘索引子***进行磁盘索引重建。
该方法进一步包括:通过循环文件对所述多级索引内存子***中的文档进行管理。
该方法进一步包括:通过全局文档表对所述多级索引内存子***中的各级索引进行管理。
本发明所提供的一种用于索引更新的处理方法和***,采用多级索引的内存索引结构,通过多级索引中的第一级索引接收新数据,并根据所接收的新数据对第一级索引进行重建;在新数据由第一级索引逐级传递到其他各级索引时,根据新数据对其他各级索引依次进行重建。由于第一级索引的数据容量比较小,索引重建速度非常快,当有新数据到达第一级索引时,只需要很短的时间即可完成第一级索引的索引重建,也就只需要很短的时间就可以从第一级索引中搜索到该数据,从而提高了索引重建速度,充分满足用户对搜索时效性要求,增加了用户的使用体验。
附图说明
图1为现有技术中用于索引更新的处理方法的流程图;
图2为本发明一种用于索引更新的处理***的组成结构示意图;
图3为本发明中多级索引的结构示意图;
图4为本发明中数据分发的流程图;
图5为本发明中索引切换的流程图;
图6为本发明中全局文档表的结构示意图;
图7本发明中循环文件管理的示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明所提供的一种用于索引更新的处理***,如图2所示,该***包括:数据接收子***10、数据分发子***20、多级索引内存子***30和磁盘索引子***40。
其中,数据接收子***10,用于接收新数据。所谓新数据,是指数据接收子***10新接收的数据,该新数据中包括删除文档列表、新增文档列表和更新文档列表的至少一种。删除文档列表中包括需要删除的文档标识(ID,IDentity);新增文档列表中包括需要增加的文档ID及对应的新增文档;更新文档列表中包括需要更新的文档ID及对应的更新文档。
数据分发子***20,与数据接收子***10相连,用于对来自数据接收子***10的新数据进行分发。数据分发子***20将来自数据接收子***10的新数据发送给多级索引内存子***30;并根据设定的磁盘更新周期,在每次磁盘更新周期结束时刻,数据分发子***20将该磁盘更新周期内所接收的所有新数据发送给磁盘索引子***40。
多级索引内存子***30,与数据分发子***20相连,多级索引内存子***30包括多级索引,如图3所示,各级索引的数据容量从上级到下级依次递增,多级索引中的数据是由上级索引到下级索引逐级传递的,且各级索引都由主索引和备索引构成。图3为一个n级索引,L1_Index表示n级索引的第一级索引,Ln_Index表示n级索引的最后一级索引,从图3中可以看出,对多级索引进行信息搜索时,是对各级索引都进行搜索,从而得到最终的搜索结果。本发明中为各级索引分别设有数据传递的门限值,当某级索引中的数据量达到对应的门限值时,该级索引将自身的新数据传递给下级索引。
以3级索引为例对数据在各级索引间的传递进行说明,L1_Index的数据容量为2兆,L2_Index的数据容量为8兆,L3_Index的数据容量为20兆。设定L1_Index的门限值为1兆,L2_Index的门限值为4兆,L3_Index的门限值为10兆。L1_Index对来自数据分发子***20的新数据进行接收,并根据接收的新数据对L1_Index进行索引重建,且L1_Index每次接收到新数据,都需要对自身索引进行重建;在L1_Index中的数据量达到1兆时,L1_Index将自身当前的新数据全部传递给L2_Index,传递结束后,L1_Index将已经传递的新数据从L1_Index中删除。同样地,L2_Index接收来自L1_Index的新数据,并根据接收的新数据进行自身索引的重建,且L2_Index每次接收到新数据,都需要对自身索引进行重建;在L2_Index中的数据量达到4兆时,L2_Index将自身当前的新数据全部传递给L3_Index,触发L3_Index进行索引重建,传递结束后,L2_Index将已经传递的新数据从L2_Index中删除。
从上述的举例中可以看出,上级索引将数据传递给下级索引后,上级索引中的数据删除,从而可以保证多级索引中的数据不发生重复。另外,各级索引对应的门限值可以根据实际需要进行设定,但是通常设定的每级索引对应的门限值都要小于各级索引的数据容量,从而保证各级索引在数据量达到门限值并进行数据的传递时,还有空间用来接收上级索引的新数据。
磁盘索引子***40,与数据分发子***20相连,数据分发子***20在每次磁盘更新周期结束时刻,将自身所存储的本次磁盘更新周期内所接收的所有新数据发送给磁盘索引子***40,由磁盘索引子***40根据接收的新数据进行磁盘索引的重建。可以看出,磁盘索引子***40每经过一个磁盘更新周期,都会根据数据分发子***20发送的新数据进行磁盘索引的重建,使得磁盘索引子***40中的信息能够得到及时的更新。相应的,由于多级索引内存子***30中所存储的所有新数据都有其对应的接收时间,多级索引内存子***30在每次磁盘更新周期的结束时刻,将多级索引中存储的在本次磁盘更新周期内所接收的新数据以及对应的索引删除,以防止多级索引内存子***30中的数据与磁盘索引子***40中出现重复。
上述的数据接收子***10还包括相互连接的数据检测模块11和数据合并模块12。数据检测模块11,用于检测每个检测周期内的新数据。检测周期的大小可以根据实际需要进行设定;数据检测模块11根据设定的检测周期,检测每个检测周期内是否有新数据的到来。数据合并模块12,用于数据检测模块11在检测周期内检测到多批新数据时,对检测到的多批新数据进行合并,并将合并后的新数据提供给数据分发子***20。本发明中设定检测周期,并对每个检测周期内的多批新数据进行合并,以固定的周期向数据分发子***20提供新数据,可以降低多级索引内存子***30在索引重建上的时间抖动。例如:检测周期为2秒,在2秒内检测到两批新数据A、B,进行数据合并后提供给数据分发子***20,会触发多级索引内存子***30进行一次索引重建;相比现有技术中新数据A触发一次索引重建,新数据B再触发一次索引重建,本发明中的索引重建时间波动较小,从而可以降低多级索引内存子***30在索引重建上的时间抖动。
上述的数据分发子***20还包括:磁盘更新周期设定模块21、序列文件生成模块22和数据分发模块23。磁盘更新周期设定模块21,用于设定磁盘更新周期。序列文件生成模块22,用于根据接收的新数据中所包含删除文档列表、新增文档列表和更新文档列表生成由文档ID组成的序列文件,该序列文件中还包括各个文档对应的状态,例如:对于需要删除的文档,文档ID对应的状态为删除,对于新增和更新的文档,文档ID对应的状态为有效。数据分发模块23,与磁盘更新周期设定模块21和序列文件生成模块22相连,用于将接收的新数据发送给多级索引内存子***30,并根据设定的磁盘更新周期,在每次磁盘更新周期结束时刻,将本次磁盘更新周期内接收的新数据和生成的序列文件发送给磁盘索引子***40。
本发明中由数据分发子***20实现的数据分发流程如图4所示,主要包括以下步骤:
步骤401,根据接收的新数据生成序列文件。
数据分发子***20根据新数据中所包含的删除文档列表、新增文档列表和更新文档列表,生成序列文件,该序列文件中包括新数据中的各个文档ID和对应的文档状态。
步骤402,根据设定的磁盘更新周期判定是否需要重建磁盘索引,如果是,则执行步骤403;否则,执行步骤404。
数据分发子***20根据设定的磁盘更新周期,确定每次磁盘更新周期结束时刻为磁盘索引重建的时间点,如果到达该时间点时,判定需要重建磁盘索引,其他时间段则判定不需要重建磁盘索引。
步骤403,向磁盘索引子***40发送本次磁盘索引周期内接收的新数据和生成的序列文件,触发磁盘索引子***40进行磁盘索引重建,然后结束当前流程。
磁盘索引子***40根据序列文件获知需要进行哪些文档的增加、删除或更新操作,执行完相应文档的增加、删除和更新操作后,重建磁盘索引。
步骤404,向多级索引内存子***30发送新数据。
每当数据分发子***20中有新数据到来时,数据分发子***20将新数据转发给多级索引内存子***30,触发多级索引内存子***30进行内存索引重建。
本发明中的多级索引内存子***30还包括:数据传递模块31和索引重建模块32。数据传递模块31,用于将来自数据分发子***20的新数据由第一级索引逐级传递到其他各级索引,新数据逐级传递的具体过程前面已详细说明,此处不再赘述。索引重建模块32,与数据传递模块31相连,用于根据各级索引接收到的新数据,对各级索引进行重建。
另外,为了保证多级索引内存子***30中的各级索引在进行重建时,仍然能够为用户提供正常的信息搜索服务,本发明的各级索引都是由主索引和备索引组成,从而使得其中一个索引在进行重建时,还能选择另外一个索引为用户提供服务。基于此,本发明中的多级索引内存子***30还包括索引切换模块33,与索引重建模块32相连,用于在各级索引的主索引和备索引中的其中一个索引进行重建时,将服务切换到另一个索引,以保证服务的正常提供。
下面以主索引重建、备索引提供服务为例,对索引切换的流程进行详细阐述,如图5所示,主要包括以下步骤:
步骤501,接收到新数据时,由主索引进行索引重建,触发索引切换,将服务切换到备索引,由被索引提供服务。
例如:L1_Index由主索引a和备索引b组成,当L1_Index中有新数据来到时,主索引a进行重建,L1_Index上的所有服务都切换到备索引b,在主索引a重建期间,由备索引b提供服务。
步骤502,主索引重建完毕之后,确定备索引是否还在提供服务,如果是,则执行步骤503;否则,执行步骤504。
步骤503,等待备索引提供服务,并返回步骤502,直到确定备索引没有在提供服务。
步骤504,将重建后的主索引替换备索引,并由重建后的主索引或备索引提供服务。
仍以步骤501中的举例进行说明,主索引a重建后得到新的主索引a1,此时需要对备索引b也进行更新,以达到备索引和主索引的同步,因此,将新的主索引a1替换备索引b,成为新的备索引b1。
需要指出的是,本发明中采用多级索引的构架,由于在上级索引的数据量达到门限值时,才将新数据传递到下级索引,触发下级索引重建,因此,会存在上级索引进行文档删除或更新操作时,上级索引中的索引变化无法及时反应到下级索引的情况。上述情况会导致用户在进行搜索是,旧的文档或已删除的文档仍然被搜索出来。于是,本发明采用全局文档表对索引进行统一管理,如图6所示,在全局文档表中,将多级索引内存子***30的所有文档ID有序排列,每个文档ID对应一个文档位图,每个文档位图中包括n个比特位,每个比特位分别用来标识该文档是否存在于各级索引中。以3级索引为例,文档ID1对应的文档位图中存在3个比特位,第一个比特位对应L1_Index,第二个比特位对应L2_Index,第三个比特位对应L3_Index;第一个比特位置1时,表明文档ID1存在于L1_Index中,第一个比特位置0时,表明文档ID1不存在于L1_Index中。其他两个比特位的功能与第一个比特位类似,不再赘述。
由此可以看出,当文档在不同级别索引间传递时,需要把传递之前该文档所在的索引对应的比特位置0,并把传递之后该文档所在的索引对应的比特位置1。例如:在上述的3级索引中,文档ID1从L1_Index传递到L2_Index时,需要将文档ID1对应的文档位图的第一个比特位置0,并将第二个比特位置1。另外,如果文档ID1在3级索引中都存在,则文档ID1在L1_Index中被更新时,需要将文档ID1对应的文档位图的第二个比特位和第三个比特位置0,以表示L2_Index和L3_Index中的文档ID1为无效,从而避免了用户搜索时,将文档ID1更新前的旧文档搜索出来。当文档ID1被执行删除操作时,需要将全局文档表中的文档ID1及对应的文档位图清空。
由于多级索引内存子***30中对文档的增加、删除、更新操作非常频繁,因此,本发明采用循环文件的构架对多级索引内存子***30中的各个文档进行管理,可以通过循环文件的头指针和尾指针的移动,方便实现对文档的各种操作。下面结合图7进一步详细说明,图7中通过头指针(Head)和尾指针(Tail)指示出文档的有效范围,初始文档包括文档1、文档2、文档3、文档4、文档5和文档6;需要新增文档7时,只需将Tail向后移动一位,并相应的将文档7的内容按顺序***循环文件中即可;需要删除文档1、文档2和文档3时,无需物理上清除文档1、文档2和文档3,只需将Head向后移动三位,指向文档4即可;如果需要继续新增文档8和文档9,仍然按照顺序***文档,并相应移动Tail,当到达循环文件尾部时,则返回循环文件的头部继续***即可。另外,如果需要删除循环文件中的文档5,则不需要移动Head和Tail,通过图6中所示的全局文档表,将文档5对应的文档位图的各个比特位置0,以表示文档5状态为无效即可。
采用循环文件的构架,只需根据文档的删除、增加和更新需要移动Head和Tail即可实现文档的方便管理,相比现有技术中创建新文件并重新复制有效文档的操作,循环文件的管理方式不会消耗过多的文档管理时间。
在硬件方面,本发明的多级索引内存子***30中增设一个管理模块34,与数据传递模块31和索引重建模块32相连,用以通过循环文件对多级索引内存子***30中的文档进行管理,并通过全局文档表对多级索引内存子***30中的索引进行管理。
另外,本发明中还可以将磁盘索引子***40作为多级索引内存子***30的下一级索引,即多级索引内存子***30的最后一级索引的数据量达到设定的门限值时,将最后一级索引中的新数据传递给磁盘索引子***40,触发磁盘索引子***40进行磁盘索引重建,在传递结束后,将最后一级索引中已传递的新数据删除,以避免多级索引内存子***30和磁盘索引子***40中的数据出现重复。在这种实施方式下,不再需要设置磁盘索引更新周期,数据分发子***20也不需要定期向磁盘索引子***40发送新数据触发磁盘索引子***40进行磁盘索引重建,磁盘索引子***40只需要在有多级索引内存子***30中的新数据到来时,进行磁盘索引重建即可,从而简化了数据分发子***20的数据分发操作。
本发明通过多级索引内存子***30,实现多级索引分别进行索引重建,由于L1_Index的数据容量通常比较小,使得L1_Index的索引重建速度非常快,当有新数据到达多级索引内存子***30时,只需要很短的时间即可完成L1_Index的索引重建,也就只需要很短的时间就可以从L1_Index中搜索到该数据。对于知识搜索来说,用户提出的问题能够马上被搜索引擎搜索出来,从而加快了问题被解决的速度,提高了问题被解决的概率;对于新闻搜索,新闻快讯能够被快速搜索出来,充分满足用户对搜索时效性要求,增加了用户的使用体验。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种用于索引更新的处理***,其特征在于,该***包括:
数据接收子***,用于接收新数据,所述新数据包括删除文档列表、新增文档列表和更新文档列表的至少一种;
数据分发子***,用于对所述新数据进行分发;
多级索引内存子***,包括多级索引,且所述多级索引中的各级索引的数据容量从上级到下级依次递增,数据由上级索引到下级索引逐级传递;
所述多级索引内存子***包括:数据传递模块、索引重建模块和索引切换模块,其中,
所述数据传递模块,用于通过第一级索引对来自所述数据分发子***的新数据进行接收,并将所述新数据由所述第一级索引逐级传递到其他各级索引;
所述索引重建模块,与数据传递模块相连,用于根据所述第一级索引接收的新数据对所述第一级索引进行重建,并在所述新数据由所述第一级索引逐级传递到其他各级索引时,根据所传递的新数据对所述其他各级索引依次进行重建;所述各级索引由主索引和备索引构成,索引的重建是对所述主索引和备索引中的其中一个索引进行重建;在索引重建完毕之后,将所述主索引和备索引更新为重建后的索引;
所述索引切换模块,与所述索引重建模块相连,用于在所述各级索引的主索引和备索引中的其中一个索引进行重建时,将服务切换到另一个索引。
2.根据权利要求1所述用于索引更新的处理***,其特征在于,所述***还包括:磁盘索引子***,用于根据来自所述数据分发子***或多级索引内存子***的新数据,对磁盘索引进行重建。
3.根据权利要求1或2所述用于索引更新的处理***,其特征在于,所述数据接收子***进一步包括:
数据检测模块,用于检测每个检测周期内的新数据;
数据合并模块,用于所述数据检测模块在检测周期内检测到多批新数据时,对所述多批新数据进行合并,并将所述合并后的新数据提供给所述数据分发子***。
4.根据权利要求1或2所述用于索引更新的处理***,其特征在于,所述多级索引内存子***进一步包括:
管理模块,与所述数据传递模块和索引重建模块相连,用于通过循环文件对所述多级索引内存子***中的文档进行管理,并通过全局文档表对所述多级索引内存子***中的索引进行管理。
5.一种用于索引更新的处理方法,其特征在于,该方法包括:
通过多级索引内存子***的多级索引中的第一级索引接收来自数据分发子***的新数据,所述新数据包括删除文档列表、新增文档列表和更新文档列表的至少一种,且所述多级索引中的各级索引的数据容量从上级到下级依次递增,数据由上级索引到下级索引逐级传递;
根据所接收的新数据对所述第一级索引进行重建;
在所述新数据由所述第一级索引逐级传递到其他各级索引时,根据所述新数据对所述其他各级索引依次进行重建;
所述各级索引由主索引和备索引构成,索引的重建是对所述主索引和备索引中的其中一个索引进行重建,并将服务切换到另一个索引,在索引重建完毕之后,将所述主索引和备索引更新为重建后的索引。
6.根据权利要求5所述用于索引更新的处理方法,其特征在于,所述新数据由第一级索引逐级传递到其他各级索引,具体包括:在上级索引的数据量达到设定的门限值时,将所述上级索引中的新数据传递到下级索引,触发所述下级索引进行重建,并将所述上级索引中已传递的新数据删除。
7.根据权利要求5所述用于索引更新的处理方法,其特征在于,该方法进一步包括:在所述多级索引中的最后一级索引的数据量达到设定的门限值时,将所述最后一级索引中的新数据传递给磁盘索引子***,触发所述磁盘索引子***进行磁盘索引重建,并将所述最后一级索引中已传递的新数据删除。
8.根据权利要求5所述用于索引更新的处理方法,其特征在于,该方法进一步包括:所述数据分发子***根据所述删除文档列表、新增文档列表和更新文档列表生成由文档标识组成的序列文件,并在每次磁盘更新周期结束时刻,将本次磁盘更新周期内接收的新数据和生成的序列文件发送给磁盘索引子***,触发所述磁盘索引子***进行磁盘索引重建。
9.根据权利要求5所述用于索引更新的处理方法,其特征在于,该方法进一步包括:通过循环文件对所述多级索引内存子***中的文档进行管理。
10.根据权利要求5所述用于索引更新的处理方法,其特征在于,该方法进一步包括:通过全局文档表对所述多级索引内存子***中的各级索引进行管理。
CN2008101291333A 2008-06-30 2008-06-30 一种用于索引更新的处理方法和*** Active CN101295323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101291333A CN101295323B (zh) 2008-06-30 2008-06-30 一种用于索引更新的处理方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101291333A CN101295323B (zh) 2008-06-30 2008-06-30 一种用于索引更新的处理方法和***

Publications (2)

Publication Number Publication Date
CN101295323A CN101295323A (zh) 2008-10-29
CN101295323B true CN101295323B (zh) 2011-11-02

Family

ID=40065607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101291333A Active CN101295323B (zh) 2008-06-30 2008-06-30 一种用于索引更新的处理方法和***

Country Status (1)

Country Link
CN (1) CN101295323B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103602B (zh) * 2009-12-17 2013-02-27 腾讯科技(深圳)有限公司 一种提高检索速度的***及方法
US8971641B2 (en) 2010-12-16 2015-03-03 Microsoft Technology Licensing, Llc Spatial image index and associated updating functionality
CN102890682B (zh) * 2011-07-21 2017-08-01 腾讯科技(深圳)有限公司 构建索引的方法、检索方法、装置及***
CN102508884A (zh) * 2011-10-18 2012-06-20 盘古文化传播有限公司 热点事件与实时评论的获取方法及装置
CN103294731A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 实时索引建立、实时搜索方法及装置
US9245003B2 (en) * 2012-09-28 2016-01-26 Emc Corporation Method and system for memory efficient, update optimized, transactional full-text index view maintenance
CN104424267A (zh) * 2013-08-29 2015-03-18 北大方正集团有限公司 一种索引数据***方法及***
CN103425802B (zh) * 2013-09-10 2017-01-25 北京信息科技大学 一种磁盘文件的快速检索方法
CN103678577B (zh) * 2013-12-10 2017-10-24 新浪网技术(中国)有限公司 一种数据更新方法及装置
CN104199827B (zh) * 2014-07-24 2017-08-04 北京大学 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN105512325B (zh) * 2015-12-21 2018-12-25 华为技术有限公司 多版本数据索引的更新、删除与建立方法及装置
CN110990399B (zh) * 2016-09-12 2023-04-28 杭州数梦工场科技有限公司 重建索引方法及装置
CN106528623B (zh) * 2016-09-28 2018-05-22 深圳云天励飞技术有限公司 一种搜索引擎加速方法及装置
CN108694188B (zh) * 2017-04-07 2023-05-12 腾讯科技(深圳)有限公司 一种索引数据更新的方法以及相关装置
CN110019221B (zh) * 2017-12-18 2022-07-19 本无链科技(深圳)有限公司 一种内存映像型数据库***
CN109783444A (zh) * 2018-12-26 2019-05-21 亚信科技(中国)有限公司 多通道文件索引方法、装置、计算机设备和存储介质
CN110399535B (zh) * 2019-02-26 2023-10-10 腾讯科技(深圳)有限公司 一种数据查询方法、装置及设备
CN109918472A (zh) * 2019-02-27 2019-06-21 北京百度网讯科技有限公司 存储和查询数据的方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1979469A (zh) * 2005-11-29 2007-06-13 国际商业机器公司 索引及其扩展和查询方法
CN101094179A (zh) * 2007-07-16 2007-12-26 中兴通讯股份有限公司 一种多级索引路由查找方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1979469A (zh) * 2005-11-29 2007-06-13 国际商业机器公司 索引及其扩展和查询方法
CN101094179A (zh) * 2007-07-16 2007-12-26 中兴通讯股份有限公司 一种多级索引路由查找方法及装置

Also Published As

Publication number Publication date
CN101295323A (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
CN101295323B (zh) 一种用于索引更新的处理方法和***
CN101820386B (zh) 用于促进在以内容为中心的网络中转发分组的方法和***
CN109391645B (zh) 区块链轻量化处理方法、区块链节点及存储介质
CN102169507B (zh) 一种分布式实时搜索引擎的实现方法
CN108121782B (zh) 查询请求的分配方法、数据库中间件***以及电子设备
CN102523285B (zh) 一种基于对象分布式文件***的存储缓存方法
CN103518364B (zh) 分布式存储***的数据更新方法及服务器
CN103095769B (zh) 跨机房的数据同步方法以及***
CN101217571B (zh) 用于多副本数据网格***中的写/读文件操作的方法
US20040085980A1 (en) System and method for maintaining transaction cache consistency in mobile computing environment
US20020131423A1 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
CN107231395A (zh) 数据存储方法、装置和***
CN101102577A (zh) 无线通信基站***前后台数据库表数据增量同步方法
CN103473229A (zh) 一种内存检索***和方法、以及实时检索***和方法
CN110597452A (zh) 存储***的数据处理方法及装置、存储服务器及存储介质
US11176111B2 (en) Distributed database management system with dynamically split B-tree indexes
CN102117338A (zh) 一种数据库缓存的方法
CN104765661A (zh) 一种云存储服务中元数据服务节点的多节点热备方法
CN109710586A (zh) 一种集群节点配置文件同步方法及装置
US20090150395A1 (en) System and method for updating file
JP4971717B2 (ja) ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム
CN101093450A (zh) 一种多cpu互斥的方法
CN116684416A (zh) 一种网元集群中的镜像分发方法、装置和***
CN101515362A (zh) 证券行情订单总揽快照数据传输方法
CN115203255A (zh) 数据查询方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHENZHEN SHIJI LIGHT SPEED INFORMATION TECHNOLOGY

Free format text: FORMER OWNER: TENGXUN SCI-TECH (SHENZHEN) CO., LTD.

Effective date: 20131015

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518044 SHENZHEN, GUANGDONG PROVINCE TO: 518057 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20131015

Address after: A Tencent Building in Shenzhen Nanshan District City, Guangdong streets in Guangdong province science and technology 518057 16

Patentee after: Shenzhen Shiji Guangsu Information Technology Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.