CN101246500A - 一种实现数据快速索引的检索系统和方法 - Google Patents

一种实现数据快速索引的检索系统和方法 Download PDF

Info

Publication number
CN101246500A
CN101246500A CNA2008100880307A CN200810088030A CN101246500A CN 101246500 A CN101246500 A CN 101246500A CN A2008100880307 A CNA2008100880307 A CN A2008100880307A CN 200810088030 A CN200810088030 A CN 200810088030A CN 101246500 A CN101246500 A CN 101246500A
Authority
CN
China
Prior art keywords
index
storehouse
index database
database
retrieval
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.)
Granted
Application number
CNA2008100880307A
Other languages
English (en)
Other versions
CN101246500B (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 CN2008100880307A priority Critical patent/CN101246500B/zh
Publication of CN101246500A publication Critical patent/CN101246500A/zh
Application granted granted Critical
Publication of CN101246500B publication Critical patent/CN101246500B/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

一种实现数据快速索引的检索系统和方法
技术领域
本发明涉及检索技术,尤其涉及一种实现数据快速索引的检索系统和方法。
背景技术
随着互联网技术的发展,目前用户普遍采用搜索引擎进行数据的检索服务。这里,所谓搜索引擎是给用户提供数据检索的在线网络工具。而基于搜索引擎进行检索服务的首要条件是:基于原始数据源创建数据索引,并对新增数据源进行顺排处理,然后全量生成倒排索引来提供检索服务。这里,顺排处理可以理解为对新增数据源进行处理,并将处理后的数据作为主文档进行存储的过程。由倒排索引构成基于主文档的索引文档。并且只有当该索引文档全部创建完毕后才能提供给用户进行检索服务。
综上所述,由于现有技术是当索引文档全部创建完毕后才能提供给用户进行检索服务,而且在新增数据源数量很多的情况下仍然采用现有技术,创建索引文档的耗时会比较长。因此,采用现有技术,势必无法及时地基于新增数据源创建索引文档并提供给用户进行检索服务。从而无法满足用户即时快速检索的需求。而且导致用户在检索服务中,存在检索效率低和检索精确度不高的问题,使用户体验感降低。目前针对上述满足用户即时快速检索的需求、以及检索效率低和检索精确度不高的问题,还没有有效地解决方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现数据快速索引的检索系统,实现了新增数据源的快速索引。即使在新增数据源数量很多的情况下,也能满足用户即时快速检索的需求,而且达到很高的检索效率和检索精确度。从而使用户在检索服务中的用户体验感大大提高。
本发明的另一目的在于提供一种实现数据快速索引的检索方法,实现了新增数据源的快速索引。即使在新增数据源数量很多的情况下,也能满足用户即时快速检索的需求,而且达到很高的检索效率和检索精确度。从而使用户在检索服务中的用户体验感大大提高。
为达到上述目的,本发明的技术方案是这样实现的:
一种实现数据快速索引的检索系统,该系统包括:索引文档创建单元、索引文档存储单元和检索服务单元;其中,
索引文档创建单元,用于在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用所述主文档中数据的不同属性作为索引关键字,创建一个以上不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给所述检索服务单元进行检索服务;
索引文档存储单元,用于存储已创建的一个以上不同级别的索引文档;
检索服务单元,用于从所述索引文档存储单元获取所述不同级别的索引文档完成检索服务。
其中,所述索引文档存储单元为至少两个。
其中,所述索引文档存储单元的存储形式为数据库形式。
其中,所述索引文档存储单元包括:微型库、小型库和中型库;相应的,所述索引文档创建单元为索引库创建单元;
并且,所述微型库、所述小型库和所述中型库中皆包括主索引库存储模块和备索引库存储模块;其中,所述主索引库存储模块,用于存储主索引库,并将所述主索引库作为当前索引库提供给所述检索服务单元完成检索服务;所述备索引库存储模块,用于存储备索引库,并将所述备索引库作为更新索引库提供给所述索引库创建单元完成基于所述新增数据源的索引库更新操作。
其中,该系统还包括主备索引库切换单元,用于获得所述索引库创建单元的通知后,在所述主索引库存储模块与所述备索引库存储模块之间,切换主索引库和备索引库,完成所述检索服务和所述基于新增数据源的索引库更新操作。
一种实现数据快速索引的检索方法,该方法包括:在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用所述主文档中数据的不同属性作为索引关键字,创建一个以上不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给所述检索服务单元进行检索服务。
其中,相应于所述一个以上不同级别的索引文档,索引文档存储单元为一个以上不同级别的索引库,该方法进一步包括:
A、预先设置所述一个以上不同级别索引库的容量,以及基于所述预先设置的容量获得一个以上不同级别索引库的级别;
B、根据当前新增数据源,以及所述一个以上不同级别索引库的级别更新已创建的所述一个以上不同级别索引库。
其中,所述预先设置容量小的索引库为预先设置容量大的索引库的上级索引库;预先设置容量大的索引库为预先设置容量小的索引库的下级索引库,则步骤B具体为:
B1、当上级索引库达到预先设置的容量后,索引库创建单元通知与所述上级索引库对应的下级索引库,使所述下级索引库基于所述当前新增数据源和为其预先设置的容量更新并重新创建索引文档;当下级索引库创建完毕后,所述索引库创建单元通知上级索引库重新创建索引文档。
其中,步骤B进一步为:对所述一个以上不同级别索引库预先设置状态标识后,根据当前具体需求修改所述状态标识,并采用基于状态标识记录一个以上不同级别索引库的状态变迁的方式实现总索引数据的完整性。
其中,步骤B后还包括:主备索引库切换单元启动切换线程,在所述一个以上不同级别索引库中,切换每一级别索引库中的主索引库和备索引库。
本发明基于原始数据源和新增数据源形成主文档存储后,针对具体的检索服务需求,利用主文档中数据的不同属性作为索引关键字,创建了多个不同级别的索引文档并存储在相对应的索引库中,以便于将多个不同级别的索引文档同时提供给用户进行检索服务。这里,该索引文档是基于主文档的多级别的索引文档。具体来说,针对主文档中的数据,创建多级别的索引文档并存储在相对应的索引库中。比如按照索引文档中的数据量,多级别的索引文档包括三个级别,那么相应于该多级别的索引文档,索引库也包括微型库、小型库和中型库三个级别。而且三个级别索引库的容量各不相同,微型库容量最小。这样当有新增数据源时,基于新增数据源形成主文档存储后,对微型库中的索引文档进行重建,该过程能控制在几秒完成,能够快速的提供给用户进行检索服务,满足了用户即时快速检索的需求。而且基于新增数据源重建的索引文档能完成及时更新,可以达到很高的检索效率和检索精确度。从而使用户在检索服务中的用户体验感大大提高。
综上所述,采用本发明,一方面,当有新增数据源时,能够及时快速地创建索引文档并提供给用户进行检索服务,满足了用户即时快速检索的需求。另一方面,本发明采用多级别的索引文档优化了检索效率和检索精确度,从而减轻了检索系统全量重建索引文档的压力,能够提供给用户更好的用户体验感。
附图说明
图1为本发明系统一实施例的组成结构示意图;
图2为本发明方法的实现流程示意图;
图3为本发明的各级别索引库中索引数据的一变化示意图;
图4为本发明的各级别索引库中索引数据的一变化示意图;
图5为本发明的各级别索引库中索引数据的一变化示意图;
图6为本发明的各级别索引库中索引数据的一变化示意图;
图7为本发明的各级别索引库中索引数据的一变化示意图;
图8为本发明的各级别索引库中索引数据的一变化示意图;
图9为本发明的各级别索引库中索引数据的一变化示意图;
图10为本发明的各级别索引库中索引数据的一变化示意图;
图11为本发明的各级别索引库中索引数据的一变化示意图。
具体实施方式
本发明的核心思想是:本发明基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用主文档中数据的不同属性作为索引关键字,创建了多个不同级别的索引文档并存储在相对应的索引库中,以便于同时提供给用户进行检索服务。满足了用户即时快速检索的需求。而且基于新增数据源重建的索引文档能完成及时更新,可以达到很高的检索效率和检索精确度。从而使用户在检索服务中的用户体验感大大提高。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
一种实现数据快速索引的检索系统,该系统包括:索引文档创建单元、索引文档存储单元和检索服务单元。
其中,索引文档创建单元,用于在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用主文档中数据的不同属性作为索引关键字,创建多个不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给检索服务单元进行检索服务。索引文档存储单元,用于存储已创建的多个不同级别的索引文档。检索服务单元,用于从所述索引文档存储单元获取所述不同级别的索引文档完成检索服务。
这里,所述索引文档存储单元的存储形式为数据库形式。并且所述索引文档存储单元为至少两个。比如所述索引文档存储单元为两个,那么针对每一个索引文档存储单元而言,每一个索引文档存储单元中存储同一级别的索引文档。针对这两个索引文档存储单元而言,两个索引文档存储单元分别存储不同级别的索引文档。也就是说,多个不同级别的索引文档,分别存储在相对应的索引文档存储单元中。
系统实施例一为:索引文档存储单元包括微型库、小型库和中型库;相应的,索引文档创建单元为索引库创建单元。
如图1所示,本实施例中的系统包括:索引库创建单元11、微型库21、小型库22、中型库23、检索服务单元41。该系统还包括主备索引库切换单元31。并且,微型库21、小型库22和中型库23中皆包括主索引库存储模块和备索引库存储模块。
其中,主索引库存储模块,用于存储主索引库,并将主索引库作为当前索引库提供给检索服务单元41完成检索服务。备索引库存储模块,用于存储备索引库,并将备索引库作为更新索引库提供给索引库创建单元11完成基于新增数据源的索引库更新操作。主备索引库切换单元31,用于获得索引库创建单元11的通知后,在主索引库存储模块与备索引库存储模块之间,切换主索引库和备索引库,完成所述检索服务和所述基于新增数据源的索引库更新操作。
这里,需要指出的是,同时在微型库21、小型库22和中型库23中都提供主索引库存储模块来存储主索引库,以及备索引库存储模块来存储备索引库,既满足了用户当前的检索服务,又能基于新增数据源完成索引库的更新操作。大大提高了检索效率和检索精确度。从而减轻了检索系统全量重建索引文档的压力,能够提供给用户更好的用户体验感。
举例来说,针对主索引库和备索引库重新创建新索引库,并在新旧索引库之间切换来提高检索效率和检索精确度的处理过程为:最初,主索引库和备索引库中的索引文档是完全一样的。之后,当基于新增数据源更新索引库时,可以采用主索引库作为当前索引库,并提供给检索服务单元41以满足用户当前的检索服务。这里,由于主索引库中的索引文档是之前就创建好的旧索引文档,因此主索引库也可以理解为旧索引库。而备索引库此时是作为更新索引库使用的。由于备索引库基于新增数据源更新并重新创建索引文档,因此备索引库也可以理解为新索引库。最后,当备索引库创建完毕后,通过主备索引库切换单元31切换主索引库和备索引库,那么当前创建完毕的备索引库即新索引库被切换为当前主索引库,来提供给检索服务单元41,以满足用户当前的检索服务。而之前提供检索服务的主索引库即旧索引库被切换为当前备索引库。释放当前备索引库,以备下一轮索引库的创建和切换。
这里,微型库21中的主索引库存储模块以第一主索引库存储模块211表示,微型库21中的备索引库存储模块以第一备索引库存储模块212表示;小型库22中的主索引库存储模块以第二主索引库存储模块221表示,小型库22中的备索引库存储模块以第二备索引库存储模块222表示;中型库23中主索引库存储模块以第三主索引库存储模块231表示,中型库23中备索引库存储模块以第三备索引库存储模块232表示。
以下针对微型库、小型库和中型库进行具体阐述。
在本实施例中,由于创建索引时采用三级索引库方式,因此索引文档存储单元包括微型库、小型库和中型库。并且微型库、小型库和中型库各自单独建库,每个库配置的索引文档数目不同,从而微型库、小型库和中型库的容量也不同,微型库容量最小。
对于不同级别索引库,索引库内的起始索引文档编号需要区别开来。比如微型库配置的容量为10000,那么索引文档编号的取值范围为[0,9999];比如小型库配置的容量为100000,那么索引文档编号的取值范围为[10000,109999];比如中型库配置的容量为10000000,那么索引文档编号的取值范围为[110000,10109999]。也就是说,微型库索引文档编号的基数为0,小型库索引文档编号的基数为10000,中型库索引文档编号的基数为110000,并且各个库的索引文档编号在此基数上偏移。
一种实现数据快速索引的检索方法,该方法包括:
步骤101、在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用主文档中数据的不同属性作为索引关键字,创建多个不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给检索服务单元进行检索服务。
这里,相应于多个不同级别的索引文档,索引文档存储单元为多个不同级别的索引库。而且,各级别索引库中所存储索引文档的数目不同,使各级别索引库的容量不同。
如图2所示,步骤101的具体处理过程进一步为:
步骤1011、预先设置多个不同级别索引库的容量,以及基于设置的多个不同级别索引库的容量获得多个不同级别索引库的级别。
这里需要指出的是,为了保证后续多个不同级别索引库重新创建和切换过程中,多个不同级别索引库之间存储的索引文档既不重复,也不出现间断,从而实现总的索引数据的完整性。那么对于多个不同级别索引库来说,可以根据每一级别索引库的处理索引文档的复杂程度,预先设置每一级别索引库能存储索引文档的最大数目,也就是预先设置每一级别索引库的最大容量。
这里,在多个不同级别索引库中,按照设置的各级别索引库最大容量由小到大的顺序,可以获知索引库的级别。比如,各级别的索引库分别为微型库、小型库和中型库,而且预先设置微型库的最大容量为最小,小型库的最大容量次之,中型库的最大容量为最大。那么微型库是小型库的上级索引库,小型库是微型库的下级索引库。同样地,小型库是中型库的上级索引库,中型库是小型库的下级索引库。
步骤1012、根据当前新增数据源,以及多个不同级别索引库的级别更新已创建的多个不同级别索引库;同时将创建完毕的多个不同级别索引库提供给检索服务单元进行检索服务。
由于预先设置容量小的索引库为预先设置容量大的索引库的上级索引库。反之,预先设置容量大的索引库为预先设置容量小的索引库的下级索引库。那么,步骤1012的具体处理过程为:
当上级索引库达到预先设置的容量后,索引库创建单元通知与该上级索引库对应的下级索引库,使该下级索引库基于当前新增数据源和预先设置的容量更新并重新创建索引文档,比如微型库通知小型库重新创建索引文档,或者小型库通知中型库重新创建索引文档;当该下级索引库创建完毕后,索引库创建单元通知上级索引库重新创建索引文档。
这里需要指出的是,在上述步骤1012的具体处理过程中,在多个不同级别索引库中,当对各级别索引库中存储的索引文档进行更新并重新创建完毕后,主备索引库切换单元获得索引库创建单元的通知后,启动切换线程,在每一级别索引库中的主索引库存储模块与备索引库存储模块之间,主备索引库切换单元切换主索引库和备索引库,并切换到最新创建的索引文档,将该最新创建的索引文档提供给检索服务单元进行检索服务。
这里需要指出的是,为了进行有效控制和避免出现死锁,同时也为了保证各级别索引库中存储的索引文档既不重复,也不出现间断,以保证总的索引数据的完整性。步骤1012进一步为:在多个不同级别索引库中,对各级别索引库设置状态标识后,根据当前具体需求修改状态标识,并采用基于状态标识记录各级别索引库的状态变迁的方式实现总的索引数据的完整性。
方法实施例一为:创建索引时采用三级索引库方式,索引文档存储单元包括微型库、小型库和中型库。并且微型库、小型库和中型库各自单独建库,每个库配置的索引文档数目不同,从而微型库、小型库和中型库的容量也不同,微型库容量最小。
并且,在微型库、小型库和中型库的重新创建和切换过程中,为了保证总的索引数据的完整性。根据它们处理文档的复杂程度,预先设定了每个级别索引库的最大容量。具体来说,预先设定微型库的最大容量为N1,并且N1=2000。那么,微型库能存储索引文档的最大数目为2000。同样地,预先设置小型库的最大容量为N2,并且N2=20000。中型库的最大容量为N3。这里,N3的设定对后续索引切换不具有参考意义,只跟内存容量和文档复杂程度有关。
另外,图3~图11为各级别索引库中索引文档对应索引数据的变化示意图。用于指示随着各级别索引库的重新创建和切换过程所导致索引数据总数目的变化,以及各级别索引库重新创建前所读取索引数据的起始和结束位置的变化,以及各级别索引库重新创建后所读取索引数据的起始和结束位置的变化。从图3~图11中可以直观获知,在各级别索引库的重新创建和切换过程中,多个不同级别索引库之间存储的索引数据既不重复,也不出现间断,总的索引数据是完整的。
这里,图3~图11中所涉及到标记的命名规则为:用a代表当前源索引数据的大小;用b2代表中型库的读取范围,b1代表小型库的读取范围,b0代表微型库的读取范围;用cx代表各级别索引库重新创建前后所读取索引数据的起始位置,并且x>=1,x为整数。比如,以图3为例进行说明,图3为微型库创建前各级别索引库中索引文档对应的索引数据变化示意图。那么,就中型库的读取范围而言,图3中的c1表示中型库的读取起始位置,同时该位置也是当前源索引数据的起始位置;c2表示中型库的读取结束位置。就小型库的读取范围而言,c2表示小型库的读取起始位置,c3表示小型库的读取结束位置。就微型库的读取范围而言,c3表示微型库的读取起始位置;c4表示微型库的读取结束位置,同时该位置也是当前源索引数据的结束位置。
综上所述,为了更好地阐述本实施例的实现流程,以下结合图3~图11中各级别索引库重新创建前后所读取索引数据的起始位置变化,对本实施例的实现流程进行说明。
本实施例中,实现数据快速索引的检索方法的实现流程包括以下步骤:
步骤201、索引库创建单元根据预先设置的时间间隔,比如每隔10秒通知微型库启动创建线程来重新创建一次索引文档。并且每次统计出本次创建的索引文档的数目。
这里,该索引文档的数目为M1,预先设置微型库的最大容量为N1。
这里,微型库创建前的读取范围如图3所示。基于新增数据源微型库重新创建索引文档后,创建后的读取范围如图4所示。这里,当前源索引数据的结束位置如图4中的c5所示。
步骤202、判断当前本次索引文档的数目是否达到或者超过了微型库的最大容量的一半即M1>=N1/2,如果M1>=N1/2,则索引库创建单元通知小型库启动创建线程,小型库开始重新创建一次索引文档,之后执行步骤203;否则,M1<N1/2,执行步骤206。
步骤203、小型库的创建线程从中型库上次读取之后的结束位置开始读取数据,直至读取到微型库上次已经读取过的位置,覆盖掉微型库中的索引文档。
这里,小型库创建前的读取范围如图4所示。微型库创建完毕,达到小型库容量一半时触发小型库的创建,此时小型库的读取范围如图5所示。这里,中型库上次读取之后的结束位置如图5中的c2所示;微型库上次已经读取过的位置如图5中的c5所示。小型库未创建完毕,基于新增数据源微型库重新创建时,此时小型库的读取范围如图6所示。这里,当前源索引数据的结束位置如图6中的c6所示。
步骤204、当小型库创建完毕后,索引库创建单元通知微型库重新创建一次索引文档。之后,微型库的创建线程从小型库上次读取之后的结束位置开始读取数据,直至读取到最新的当前源索引数据的结束位置。从而使得小型库和微型库的索引文档刚好衔接上,没有重复也没有空档。
这里,小型库创建完毕,微型库从新位置重新创建时,此时微型库的读取范围如图7所示。这里,小型库上次读取之后的结束位置如图7中的c5所示,当前源索引数据的结束位置如图7中的c6所示。
步骤205、微型库和小型库都创建完毕后,索引库创建单元通知主备索引库切换单元启动切换线程,并通知微型库和小型库分别切换到当前最新的索引文档,将该最新创建的索引文档提供给检索服务单元进行检索服务。转入执行步骤207。
步骤206、索引库创建单元通知主备索引库切换单元启动切换线程进行微型库的切换,主备索引库切换单元在微型库中的主索引库存储模块与备索引库存储模块之间,切换主索引库和备索引库,并切换到最新创建的索引文档,将该最新创建的索引文档提供给检索服务单元进行检索服务。转入执行步骤211。
步骤207、当小型库创建索引文档时,统计索引文档的数目为M2,而预先设置小型库的最大容量为N2。那么,判断当前本次索引文档的数目是否达到或者超过了小型库的最大容量的一半即M2>=N2/2,如果M2>=N2/2,则执行步骤208;否则,M2<N2/2,执行步骤210。
步骤208、索引库创建单元通知中型库启动创建线程,中型库开始重新创建一次索引文档。之后,中型库的创建线程从初始有效文档的位置开始读取数据,直至读取到小型库上次已经读取过的位置,覆盖掉小型库中的索引文档。
这里,中型库创建前的读取范围如图7所示。小型库创建完毕,达到中型库容量一半时触发中型库的创建,此时中型库的读取范围如图8所示。这里,初始有效文档的位置,即当前源索引数据的起始位置如图8中的c1所示;小型库上次已经读取过的位置如图8中的c5所示。
这里,中型库未创建完毕,基于新增数据源微型库重新创建时,各级别索引库所读取索引数据的起始和结束位置的变化如图9所示。后续中型库创建完毕,触发小型库从新位置重新创建时,各级别索引库所读取索引数据的起始和结束位置的变化如图10所示。后续小型库创建完毕,触发微型库从新位置重新创建时,各级别索引库所读取索引数据的起始和结束位置的变化如图11所示。
这里需要指出的是,由于中型库未创建完毕,基于新增数据源微型库重新创建的过程;后续中型库创建完毕所触发小型库重新创建的过程;以及后续小型库创建完毕所触发微型库重新创建的过程中,这些过程所涉及到的原理和图,同上述基于小型库的创建所触发微型库重新创建过程的原理类似。因此,这里不做过多阐述。
步骤209、中型库创建完毕后,转入执行步骤203来创建小型库。当微型库、小型库和中型库都创建完毕后,索引库创建单元通知主备索引库切换单元启动切换线程,并通知微型库、小型库和中型库分别切换到当前最新的索引文档,将该最新创建的索引文档提供给检索服务单元进行检索服务。转入执行步骤211。
步骤210、索引库创建单元通知主备索引库切换单元启动切换线程进行小型库的切换,主备索引库切换单元在小型库中的主索引库存储模块与备索引库存储模块之间,切换主索引库和备索引库,并切换到最新创建的索引文档,将该最新创建的索引文档提供给检索服务单元进行检索服务。
步骤211、结束当前实现数据快速索引检索的实现流程。
这里需要指出的是,在各级别索引库的创建和切换过程中,为了便于控制索引库的创建和切换,需要识别出各级别索引库当前所处的状态。那么,可以预先对各级别索引库设置状态标识,然后根据当前具体需求修改状态标识,并基于状态标识记录各级别索引库的状态变迁,从而达到便于控制索引库创建和切换的目的。而且,采用这种基于状态标识记录各级别索引库的状态变迁的方式还可以实现总的索引数据的完整性。
以下对基于状态标识记录各级别索引库的状态变迁的方式进行具体阐述。
在多个不同级别索引库中,为各级别索引库预先设置了四种状态,分别以状态标识UNSTARTED、START_NOT_FINISH、FINISH_BUT_WAIT和FINISH_NO_WAIT表示。其中,用UNSTARTED表示各级别索引库处于未开始创建的状态;用START_NOT_FINISH表示各级别索引库处于开始创建但未完成的状态;用FINISH_BUT_WAIT表示各级别索引库处于已经创建完毕、但还需要等待上级索引库创建完毕的状态;用FINISH_NO_WAIT表示各级别索引库处于已经创建完毕、无需等待、可以直接切换的状态。并且,各级别索引库的状态在上述四种状态之间进行切换。
当各级别索引库为微型库、小型库和中型库时,这三级索引库对应的四种状态如下面的表1~表6所示。其中,表1为未填写状态标识的空表。
 UNSTARTED   START_NOT_FINISH  FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库
  小型库
  中型库
                                          表1
  UNSTARTED   START_NOT_FINISH   FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库   √
  小型库   √
  中型库   √
                                        表2
  UNSTARTED   START_NOT_FINISH   FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库   √
  小型库   √
  中型库   √
                                   表3
  UNSTARTED   START_NOT_FINISH   FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库   √
  小型库   √
  中型库   √
                                    表4
  UNSTARTED   START_NOT_FINISH   FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库   √
  小型库   √
  中型库   √
                                           表5
 UNSTARTED   START_NOT_FINISH   FINISH_BUT_WAIT   FINISH_NO_WAIT
  微型库   √
  小型库   √
  中型库   √
                                        表6
综上所述,基于状态标识记录各级别索引库的状态变迁的方式,来实现总的索引数据完整性的具体处理过程为:
a1、触发启动重新创建索引库的操作,比如索引库创建单元通知微型库启动创建线程来重新创建一次索引文档。
这里,微型库的状态标识由UNSTARTED切换到START_NOT_FINISH。那么微型库当前处于开始创建索引文档但未完成的状态。
a2、微型库重新创建索引文档完毕后,如果微型库不需要触发上级索引库中索引文档的重新创建,则微型库回调并修改状态。此时微型库直接变为可切换状态。
这里,微型库的状态标识由START_NOT_FINISH切换到FINISH_NO_WAIT。那么微型库当前处于已经创建完毕、无需等待、可以直接切换的状态。并且,此时可以由主备索引库切换单元在微型库中的主索引库存储模块与备索引库存储模块之间,切换主索引库和备索引库。
a3、当微型库到达可切换状态后,启动切换线程将索引文档更新完毕的微型库切换到在线检索模式,同时将微型库的状态修改为初始状态。
这里,微型库的状态标识由FINISH_NO_WAIT切换到UNSTARTED。那么微型库当前返回初始状态,微型库完成一次索引文档的重新创建过程。
或者,基于状态标识记录各级别索引库的状态变迁的方式,来实现总的索引数据完整性的具体处理过程还可以为:
b1、触发重新创建索引库的操作,比如索引库创建单元通知小型库启动创建线程来重新创建一次索引文档。
这里,小型库的状态标识由UNSTARTED切换到START_NOT_FINISH。那么小型库当前处于开始创建索引文档但未完成的状态。
b2、小型库重新创建索引文档完毕后,如果小型库需要触发上级索引库即微型库中索引文档的重新创建,则小型库回调并修改状态。此时小型库需要等待微型库中索引文档的重新创建完毕后,才能变为可切换状态。
这里,小型库的状态标识由START_NOT_FINISH切换到FINISH_BUT_WAIT。那么小型库当前处于已经创建完毕、但还需要等待微型库创建完毕的状态。
b3、微型库创建完毕后,修改小型库的状态到可切换状态。
此时,小型库的状态标识由FINISH_BUT_WAIT切换到FINISH_NO_WAIT。那么小型库当前处于已经创建完毕、无需等待、可以直接切换的状态。
b4、当小型库到达可切换状态后,启动切换线程将索引文档更新完毕的小型库切换到在线检索模式,同时将小型库的状态修改为初始状态。
这里,小型库的状态标识由FINISH_NO_WAIT切换到UNSTARTED。那么小型库当前返回初始状态。小型库和微型库完成索引文档的重新创建过程。
这里需要指出的是,在各级别索引库的创建和切换过程中,需要考虑到总索引数据的完整性,那么相应于各级别索引库之间的切换分为以下几种情况。
第一种情况为基于新增数据源只有微型库更新的情况。在这种情况下,只需要切换微型库,具体来说就是切换微型库中的主索引库和备索引库。这里,微型库的起始位置就是小型库的结束位置,微型库的结束位置就是最新数据的结束位置。
这种情况包括两方面内容。一方面是,当新增数据源到达且M1<N1/2时,微型库进行倒排处理。并且微型库中的索引文档更新和重建完成后,不需要触发小型库中索引文档的更新和重建。这里,只进行微型库的切换。此时,各级别索引库所对应的状态如表2所示。另一方面是,当新增数据源到达且M1>=N1/2时,微型库进行倒排处理。并且微型库中的索引文档更新和重建完成后,同时通知小型库启动创建线程,小型库中的索引文档被更新和重建。这里,在小型库中索引文档更新和重建完毕之前,仍只进行微型库的切换。此时,各级别索引库所对应的状态如表3所示。
第一种情况为基于新增数据源微型库和小型库都更新的情况。在这种情况下,需要切换微型库和小型库这两级索引库。这种情况也包括两方面内容。一方面是,微型库和小型库中的索引文档都更新和重建完毕。这里只进行微型库和小型库的切换。此时,各级别索引库所对应的状态如表4所示。另一方面是,微型库和小型库中的索引文档都更新和重建完毕后,同时通知小型库启动创建线程,触发中型库中的索引文档的更新和重建。但是,由于中型库中的索引文档还没有重建完成,因此这里只进行微型库和小型库的切换。此时,各级别索引库所对应的状态如表5所示。
第三种情况为基于新增数据源微型库、小型库和中型库都更新的情况。在这种情况下,需要切换微型库、小型库和中型库这三级索引库。此时,各级别索引库所对应的状态如表6所示。并且在切换时,需要判断各级别索引库之间的起始和结束位置是否衔接,当遇到有重复的需要清理掉,使各级别索引库中存储的索引文档既不重复,也不出现间断,以保证总的索引数据的完整性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1、一种实现数据快速索引的检索系统,其特征在于,该系统包括:索引文档创建单元、索引文档存储单元和检索服务单元;其中,
索引文档创建单元,用于在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用所述主文档中数据的不同属性作为索引关键字,创建一个以上不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给所述检索服务单元进行检索服务;
索引文档存储单元,用于存储已创建的一个以上不同级别的索引文档;
检索服务单元,用于从所述索引文档存储单元获取所述不同级别的索引文档完成检索服务。
2、根据权利要求1所述的系统,其特征在于,所述索引文档存储单元为至少两个。
3、根据权利要求1或2所述的系统,其特征在于,所述索引文档存储单元的存储形式为数据库形式。
4、根据权利要求3所述的系统,其特征在于,所述索引文档存储单元包括:微型库、小型库和中型库;相应的,所述索引文档创建单元为索引库创建单元;
并且,所述微型库、所述小型库和所述中型库中皆包括主索引库存储模块和备索引库存储模块;其中,所述主索引库存储模块,用于存储主索引库,并将所述主索引库作为当前索引库提供给所述检索服务单元完成检索服务;所述备索引库存储模块,用于存储备索引库,并将所述备索引库作为更新索引库提供给所述索引库创建单元完成基于所述新增数据源的索引库更新操作。
5、根据权利要求4所述的系统,其特征在于,该系统还包括主备索引库切换单元,用于获得所述索引库创建单元的通知后,在所述主索引库存储模块与所述备索引库存储模块之间,切换主索引库和备索引库,完成所述检索服务和所述基于新增数据源的索引库更新操作。
6、一种实现数据快速索引的检索方法,其特征在于,该方法包括:在基于原始数据源和新增数据源形成主文档存储后,根据具体的检索服务需求,利用所述主文档中数据的不同属性作为索引关键字,创建一个以上不同级别的索引文档并存储在相对应的索引文档存储单元中;同时提供给所述检索服务单元进行检索服务。
7、根据权利要求6所述的方法,其特征在于,相应于所述一个以上不同级别的索引文档,索引文档存储单元为一个以上不同级别的索引库,该方法进一步包括:
A、预先设置所述一个以上不同级别索引库的容量,以及基于所述预先设置的容量获得一个以上不同级别索引库的级别;
B、根据当前新增数据源,以及所述一个以上不同级别索引库的级别更新已创建的所述一个以上不同级别索引库。
8、根据权利要求7所述的方法,其特征在于,所述预先设置容量小的索引库为预先设置容量大的索引库的上级索引库;预先设置容量大的索引库为预先设置容量小的索引库的下级索引库,则步骤B具体为:
B1、当上级索引库达到预先设置的容量后,索引库创建单元通知与所述上级索引库对应的下级索引库,使所述下级索引库基于所述当前新增数据源和为其预先设置的容量更新并重新创建索引文档;当下级索引库创建完毕后,所述索引库创建单元通知上级索引库重新创建索引文档。
9、根据权利要求7所述的方法,其特征在于,步骤B进一步为:对所述一个以上不同级别索引库预先设置状态标识后,根据当前具体需求修改所述状态标识,并采用基于状态标识记录一个以上不同级别索引库的状态变迁的方式实现总索引数据的完整性。
10、根据权利要求7、8或9所述的方法,其特征在于,步骤B后还包括:主备索引库切换单元启动切换线程,在所述一个以上不同级别索引库中,切换每一级别索引库中的主索引库和备索引库。
CN2008100880307A 2008-03-27 2008-03-27 一种实现数据快速索引的检索系统和方法 Active CN101246500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100880307A CN101246500B (zh) 2008-03-27 2008-03-27 一种实现数据快速索引的检索系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100880307A CN101246500B (zh) 2008-03-27 2008-03-27 一种实现数据快速索引的检索系统和方法

Publications (2)

Publication Number Publication Date
CN101246500A true CN101246500A (zh) 2008-08-20
CN101246500B CN101246500B (zh) 2011-04-13

Family

ID=39946951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100880307A Active CN101246500B (zh) 2008-03-27 2008-03-27 一种实现数据快速索引的检索系统和方法

Country Status (1)

Country Link
CN (1) CN101246500B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833986A (zh) * 2010-05-20 2010-09-15 哈尔滨工业大学 一种三级音频索引的创建方法及音频检索方法
CN102375853A (zh) * 2010-08-24 2012-03-14 中国移动通信集团公司 分布式数据库系统、在其中建立索引的方法和查询方法
CN102651007A (zh) * 2011-02-28 2012-08-29 国际商业机器公司 一种管理数据库索引的方法和装置
CN103198108A (zh) * 2013-03-27 2013-07-10 新浪网技术(中国)有限公司 一种索引数据更新方法、检索服务器及系统
CN103514226A (zh) * 2012-06-28 2014-01-15 浙江大华技术股份有限公司 一种数字硬盘录像机文件存储的快速索引方法和装置
CN104285223A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 修改根结点的方法和修改装置
CN104598550A (zh) * 2014-12-31 2015-05-06 北京奇艺世纪科技有限公司 一种网络视频索引的更新方法和装置
CN105468758A (zh) * 2015-11-30 2016-04-06 北京金山安全软件有限公司 数据检索方法及装置
CN105488165A (zh) * 2015-11-30 2016-04-13 北京金山安全软件有限公司 基于索引库的数据检索方法及系统
CN107526746A (zh) * 2016-06-22 2017-12-29 伊姆西公司 管理文档索引的方法和设备
CN109062959A (zh) * 2018-06-26 2018-12-21 阿里巴巴集团控股有限公司 一种传播内容的检索方法和装置
CN109783444A (zh) * 2018-12-26 2019-05-21 亚信科技(中国)有限公司 多通道文件索引方法、装置、计算机设备和存储介质
CN115080684A (zh) * 2022-07-28 2022-09-20 天津联想协同科技有限公司 网盘文档索引方法、装置、网盘及存储介质

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833986A (zh) * 2010-05-20 2010-09-15 哈尔滨工业大学 一种三级音频索引的创建方法及音频检索方法
CN102375853A (zh) * 2010-08-24 2012-03-14 中国移动通信集团公司 分布式数据库系统、在其中建立索引的方法和查询方法
US9189506B2 (en) 2011-02-28 2015-11-17 International Business Machines Corporation Database index management
CN102651007A (zh) * 2011-02-28 2012-08-29 国际商业机器公司 一种管理数据库索引的方法和装置
CN103514226A (zh) * 2012-06-28 2014-01-15 浙江大华技术股份有限公司 一种数字硬盘录像机文件存储的快速索引方法和装置
CN103198108A (zh) * 2013-03-27 2013-07-10 新浪网技术(中国)有限公司 一种索引数据更新方法、检索服务器及系统
CN103198108B (zh) * 2013-03-27 2016-08-10 新浪网技术(中国)有限公司 一种索引数据更新方法、检索服务器及系统
US10289710B2 (en) 2013-12-31 2019-05-14 Huawei Technologies Co., Ltd. Method for modifying root node, and modification apparatus
WO2015100626A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 修改根结点的方法和修改装置
CN104285223B (zh) * 2013-12-31 2018-03-13 华为技术有限公司 修改根结点的方法和修改装置
CN104285223A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 修改根结点的方法和修改装置
CN104598550A (zh) * 2014-12-31 2015-05-06 北京奇艺世纪科技有限公司 一种网络视频索引的更新方法和装置
CN104598550B (zh) * 2014-12-31 2018-09-25 北京奇艺世纪科技有限公司 一种网络视频索引的更新方法和装置
CN105488165A (zh) * 2015-11-30 2016-04-13 北京金山安全软件有限公司 基于索引库的数据检索方法及系统
CN105468758A (zh) * 2015-11-30 2016-04-06 北京金山安全软件有限公司 数据检索方法及装置
CN105468758B (zh) * 2015-11-30 2019-08-09 北京金山安全软件有限公司 数据检索方法及装置
CN107526746A (zh) * 2016-06-22 2017-12-29 伊姆西公司 管理文档索引的方法和设备
US11068536B2 (en) 2016-06-22 2021-07-20 EMC IP Holding Company LLC Method and apparatus for managing a document index
CN109062959A (zh) * 2018-06-26 2018-12-21 阿里巴巴集团控股有限公司 一种传播内容的检索方法和装置
CN109062959B (zh) * 2018-06-26 2021-06-22 创新先进技术有限公司 一种传播内容的检索方法和装置
CN109783444A (zh) * 2018-12-26 2019-05-21 亚信科技(中国)有限公司 多通道文件索引方法、装置、计算机设备和存储介质
CN115080684A (zh) * 2022-07-28 2022-09-20 天津联想协同科技有限公司 网盘文档索引方法、装置、网盘及存储介质
CN115080684B (zh) * 2022-07-28 2023-01-06 天津联想协同科技有限公司 网盘文档索引方法、装置、网盘及存储介质

Also Published As

Publication number Publication date
CN101246500B (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN101246500B (zh) 一种实现数据快速索引的检索系统和方法
CN101354726B (zh) 一种机群文件系统的内存元数据管理方法
Zhou et al. Advanced partitioning techniques for massively distributed computation
CN103164418B (zh) 一种序列号的处理方法及设备
CN103455512A (zh) Saas平台多租户数据管理模型
CN105426408A (zh) 一种多索引的数据处理方法及装置
CN102541529A (zh) 一种查询页面生成装置和方法
CN104765731A (zh) 数据库查询优化方法和设备
CN102474531A (zh) 地址服务器
CN101840400A (zh) 一种多级分类检索方法及系统
CN102654878B (zh) 嵌入式系统中分布式数据库的数据操作方法及板卡
CN101706820A (zh) 物料清单存储方法及装置、查询方法及装置
CN105117433A (zh) 一种基于Hive解析HFile统计查询HBase的方法和系统
CN102902818A (zh) 一种数据库升级的方法及装置
CN102375827A (zh) 一种对版本化的电网模型数据库进行快速加载的方法
CN104035925A (zh) 数据存储方法、装置和存储系统
CN107818114A (zh) 一种数据处理方法、装置及数据库
CN102567419B (zh) 基于树结构的海量数据存储装置及方法
CN104361009B (zh) 一种基于倒排索引的实时索引方法
CN101216845A (zh) 数据库自动分类方法
CN106294189A (zh) 内存碎片整理方法及装置
CN101359337B (zh) 用于交互式地编辑gis拓扑数据集的方法
CN103778219A (zh) 一种基于HBase的更新增量索引的方法
CN102831146A (zh) 数据库子串过滤索引系统及其构建、查询方法
CN101604309A (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.