CN116368485A - 多区域混合索引管理 - Google Patents

多区域混合索引管理 Download PDF

Info

Publication number
CN116368485A
CN116368485A CN202180070162.0A CN202180070162A CN116368485A CN 116368485 A CN116368485 A CN 116368485A CN 202180070162 A CN202180070162 A CN 202180070162A CN 116368485 A CN116368485 A CN 116368485A
Authority
CN
China
Prior art keywords
index
hybrid
subset
documents
search
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
Application number
CN202180070162.0A
Other languages
English (en)
Inventor
A·C·布勒施
董伟
林依天
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN116368485A publication Critical patent/CN116368485A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提出了用于多区域混合索引管理的方法、装置和计算机程序产品。可以接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由文档管理系统(DMS)管理的文档集合中的部分或全部文档。可以在所述DMS创建上至少一个新的搜索服务应用(SSA)。可以通过所述新的SSA获得所述新的混合索引子集。可以在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。

Description

多区域混合索引管理
背景技术
随着诸如云存储和云计算之类技术的发展,越来越多的数据所有者,例如企业、工业机构、教育机构等,将他们的数据存储在不同的位置,例如在不同的城市或不同的国家,或者甚至在不同的洲。数据所有者通常基于数据管理的需要、法律原因等来存储他们的数据。例如,一些国家或组织已经制定了数据驻留政策,这些政策规定了数据应当被存储的地理位置。数据所有者应当根据他们所面临的所有数据驻留政策的要求,将其数据存储在适当的位置。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于多区域混合索引管理的方法、装置和计算机程序产品。可以接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由文档管理系统(DMS)管理的文档集合中的部分或全部文档。可以在所述DMS创建上至少一个新的搜索服务应用(SSA)。可以通过所述新的SSA获得所述新的混合索引子集。可以在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
此外,本公开的实施例还提出了用于多区域混合索引管理的系统。所述系统可以包括:不同区域中的多个数据中心,用于托管多个混合索引子集,其中,所述多个数据中心中的目标数据中心在指定区域中,并且被配置用于托管文档子集的混合索引子集,所述文档子集包括文档集合中的部分或全部文档;以及至少一个DMS,用于管理所述文档集合并将所述文档子集的所述混合索引子集提供给所述目标数据中心,其中,所述DMS包括用于获得所述文档子集的所述混合索引子集的SSA。
应当注意,以上一个或多个方面包括在下文中详细描述并在权利要求中具体指出的特征。下面的说明书及附图详细阐述了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以采用各个方面的原理的各种方式,并且本公开旨在包括所有这些方面及其等同物。
附图说明
以下将结合附图描述所公开的方面,提供这些附图用以说明而非限制所公开的方面。
图1示出了根据本公开实施例的用于建立文档的混合索引的示例性过程。
图2A至图2C示出了根据本公开实施例的用于建立文档的混合索引的示例。
图3示出了根据本公开实施例的用于跨区域移动文档的混合索引的示例性过程。
图4A至图4G示出了根据本公开实施例的用于跨区域移动文档的混合索引的示例。
图5A至图5B示出了根据本公开实施例的云混合搜索的示例性拓扑结构。
图6A至图6C示出了根据本公开实施例的联合搜索的示例性拓扑结构。
图7A至图7B示出了根据本公开实施例的采用多区域搜索机制的云混合搜索的示例性拓扑结构。
图8是根据本公开实施例的用于多区域混合索引管理的示例性方法的流程图。
图9示出了根据本公开实施例的用于多区域混合索引管理的示例性系统。
图10示出了根据本公开实施例的用于多区域混合索引管理的示例性装置。
具体实施方式
现在将参考若干示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
数据所有者通常管理海量数据。在本文中,数据也可以被称为文档。文档可以包括可以由电子设备存储和处理的任何数字内容,例如图片、视频、网页、电子邮件、生产力工具文档等,其中生产力工具文档可以是由文档创作或编辑软件处理的各种电子文档,包括例如文字处理文档、电子表格、演示文档等。
数据所有者可以采用基于云的服务来帮助其管理和共享跨区域存储的文档。在本文中,区域可以广泛地指任何地理地域或行政区划,例如城市、国家、洲、组织等。例如,基于云的服务可以提供混合搜索(hybrid searching),其中数据所有者可以在云环境中的数据中心上托管其文档的混合索引(hybrid index),而在多个DMS中存储这些文档。在本文中,混合索引可以指其被托管在在云环境中的数据中心上,但其相应的文档被存储在DMS中的索引。在本文中,DMS可以指由数据所有者拥有和/或操作并负责管理数据所有者的文档的系统。DMS在本文中也可以被称为本地(on-premises,on-prem)DMS。多个本地DMS可以由数据所有者在不同区域设立,用于管理相应的本地文档。本地DMS的一个示例可以是微软公司的SharePoint服务器。此外,数据所有者可以在数据中心上托管一些文档,并建立数据中心上的文档的索引。通过混合搜索,可以同时搜索存储在多个本地DMS和/或数据中心上的文档。目前,数据所有者的所有本地DMS的文档的混合索引都被托管在一个区域中的一个数据中心上。
本公开的实施例提出了多区域混合索引管理。例如,数据所有者或其他实体可以发布指示,该指示指定由本地DMS管理的文档的混合索引将被托管在哪个或哪些区域。可以基于例如数据管理的需要、数据驻留策略的要求等来指定一个或多个区域。响应于接收到该指示,可以在本地DMS上创建至少一个SSA。SSA可以是基于云的服务中的基于爬取(crawl)的应用,其可以爬取文档并建立文档的混合索引。SSA也可以被称为云SSA。然后,混合索引可以被提供给至少一个指定区域中的至少一个目标数据中心,并被托管在其上。在本文中,目标数据中心可以是指期望在其上建立混合索引或期望将混合索引移动到其处的数据中心。通过所提出的多区域混合索引管理,由每个本地DMS管理的文档的索引可以被灵活地托管在由数据所有者指定的至少一个区域中的至少一个数据中心上,而不是被托管在分配给数据所有者的唯一的数据中心上。因此,数据所有者的多个本地DMS的文档的混合索引可以被托管在多个区域中的多个数据中心上,而不是被托管在单个区域中的单个数据中心上。这种方式可以使得混合索引的托管能够更好地满足数据管理的需要、数据驻留策略的要求等等。
所提出的多区域混合索引管理可以适用于建立之前未建立其混合索引的文档的混合索引。可以在指定区域中的单个目标数据中心上建立由本地DMS管理的文档的混合索引。替代地,可以在多个指定区域中的多个目标数据中心上分别建立由本地DMS管理的文档的混合索引。
此外,所提出的多区域混合索引管理可以适用于跨区域移动文档的混合索引。可以将由本地DMS管理的部分或全部文档的混合索引移动到单个指定区域中的单个目标数据中心。替代地,可以将由本地DMS管理的部分或全部文档的混合索引移动到多个指定区域中的多个目标数据中心。例如,本地DMS的所有文档的原始混合索引被托管在原始区域中的原始数据中心上。可以通过原始SSA获得原始混合索引。在这种情况下,可以在本地DMS上创建至少一个新的SSA。新的SSA可以爬取相应的文档,以获得文档的新的混合索引。新的混合索引可以被提供给指定区域中的目标数据中心,并被托管在其上。上述用于跨区域移动混合索引的方式可以对数据所有者的单个本地DMS的部分或全部文档的混合索引执行。也就是说,通过上述方式,可以移动数据所有者的特定本地DMS的部分或全部文档的混合索引,这可能是有益的,尤其是在数据驻留策略的要求发生变化时。
本公开的实施例提出了在移动混合索引时,通过设置搜索限制,从原始混合索引切换到新的混合索引。例如,在获得新的混合索引之前,可以设置第一搜索限制,使得混合搜索排除使用新的混合索引。当已经获得了新的混合索引时,可以删除第一搜索限制并且可以设置第二搜索限制,使得混合搜索排除使用原始混合索引。这种方式不会影响终端用户执行混合搜索,并且对终端用户是透明的。
图1示出了根据本公开实施例的用于建立文档的混合索引的示例性过程100。该过程可以适用于之前未建立其混合索引的文档。文档可以由属于数据所有者的、用于管理文档的本地DMS管理,该数据所有者采用基于云的服务。在本文中,采用基于云的服务的数据所有者也可以被称为基于云的服务的租户。在过程100中,响应于接收到用于在至少一个指定区域中建立至少一个混合索引子集的指示,可以在该指定区域中的至少一个目标数据中心上托管混合索引子集。
在102处,可以接收用于在至少一个指定区域中建立至少一个混合索引子集的指示。至少一个混合索引子集可以包含一个或多个混合索引子集。每个新的混合索引子集可以对应一个文档子集。文档子集可以包括由本地DMS管理的文档集合中的部分或全部文档。在一种实施方式中,可以通过与本地DMS相关联的用户接口(UI)来接收该指示。例如,该指示可以包括用于托管至少一个混合索引子集的至少一个指定区域,其可以是通过UI选择的。
在104处,响应于接收到该指示,可以在本地DMS上创建至少一个SSA。SSA可以被配置用于获得文档子集的混合索引子集。
随后,可以通过SSA获得混合索引子集,并将其托管在指定区域中的目标数据中心上。
在106处,可以通过SSA获得文档子集中的文档的混合索引。例如,SSA可以爬取文档并建立文档的混合索引。混合索引子集中的混合索引可以对应于文档子集中的文档中的至少一个元素,例如单词、短语、句子、段落等。相应地,可以为文档中的多个元素分别建立多个混合索引,或者替代地,也可以为整个文档建立一个混合索引。在一种实施方式中,混合索引可以包括获得该混合索引的SSA的SSA标识符(SSAID)。在本文中,SSAID可以是用于标识SSA的全局唯一标识符。另外,混合索引还可以包括租户的租户标识符(TenantID)、混合索引的索引标识符(IndexID)等。在本文中,TenantID可以是用于标识租户的全局唯一标识符,并且IndexID可以是用于标识混合索引的标识符。
在108处,可以在指定区域中的至少一个目标数据中心上托管所获得的混合索引。例如,SSA可以将所获得的混合索引提供给目标数据中心,并且目标数据中心可以托管所获得的混合索引。
在110处,可以确定是否已经获得了文档子集中的所有文档的混合索引。如果在110处确定尚未获得文档子集中的所有文档的混合索引,则过程100可以返回到106,在106处可以通过SSA获得文档子集中剩余文档的混合索引。如果在110处确定已经获得了文档子集中的所有文档的混合索引,则过程100可以进行到112并结束。
通过过程100,文档子集的混合索引子集可以被灵活地建立在由数据所有者或其他实体指定的区域中的目标数据中心上,而不是在分配给数据所有者的唯一数据中心上。数据所有者具有例如位于多个区域中的多个本地DMS。每个本地DMS可以管理包括多个文档子集的文档集合。可以分别针对每个文档集合或每个文档子集来执行过程100,使得可以在相应指定区域中的目标数据中心上建立文档集合的混合索引集合或文档子集的混合索引子集。因此,数据所有者的多个本地DMS的文档的混合索引可以被托管在多个区域中的多个目标数据中心上,而不是被托管在单个区域中的单个数据中心上。这种方式可以使得混合索引的托管能够更好地满足数据管理的需要、数据驻留策略的要求等等。
应当理解,图1中的过程100只是用于建立文档的混合索引的过程的示例。根据实际应用需求,用于建立文档的混合索引的该过程可以包括任何其他步骤,并且可以包括更多或更少的步骤。例如,虽然在过程100中,可以在已经获得了文档子集中的所有文档的混合索引之前将混合索引托管在数据中心上,但在已经获得了文档子集中的所有文档的混合索引之后将混合索引托管在数据中心上也是可以的。
图2A至图2C示出了根据本公开实施例的用于建立文档的混合索引的示例,包括示意图200a至200c。图200a至200c可以适用于之前未建立其混合索引的文档。具体而言,图200a和200b旨在描述用于在单个指定区域中的单个目标数据中心上建立由本地DMS管理的文档的混合索引的过程,而图200a和200c旨在描述用于分别在两个指定区域中的两个目标数据中心上建立由本地DMS管理的文档的混合索引的过程。图200b和200c中建立的混合索引可以根据图1中的过程100来建立。
在图200a中,本地DMS 210可以属于租户T并且位于区域A中。本地DMS 210可以管理文档集合212。文档集合212可以包括一组文档,例如文档1到文档M,其中M≥1表示文档的数量。目前,区域X中的数据中心220和区域Y中的数据中心230均不包括文档集合212的混合索引。
在一个示例中,当接收到用于建立区域X中的文档集合212的混合索引的指示时,过程可以进行到图200b。在图200b中,可以在本地DMS 210上创建SSA 214,以获得文档集合212的混合索引集合222。区域X可以与区域A相同或与区域A不同。SSA 214可以具有全局唯一的SSAID,例如“T-A-new”。混合索引集合222可以包括与文档集合212相对应的一组混合索引,其中,混合索引集合222中的混合索引可以对应于文档集合212中的文档中的至少一个元素。文档集合212包括M个文档,并且混合索引集合222可以包括与文档集合212中的M个文档相对应的N个混合索引,其中N可以等于或不等于M。文档的混合索引集合222中的混合索引可以包括例如租户T的TenantID、SSA 214的SSAID、该混合索引的IndexID等。由于混合索引集合222与属于租户T的文档集合212相对应并且是通过SSA 214获得的,因此混合索引集合222中的所有混合索引的TenantID和SSAID都是相同的。也就是说,所有混合索引的TenantID都可以是“T”,并且所有混合索引的SSAID都可以是“T-A-new”。例如,混合索引集合222中的混合索引n(1≤n≤N)可以是“<TenantID=T,SSAID=T-A-new,IndexID=n...>”。
可以在区域X中的数据中心220上托管混合索引集合222。区域X可以是在所接收的指示中指示的用于托管混合索引集合222的指定区域。
在另一示例中,当接收到用于分别在两个指定区域中建立文档集合212中的两个文档子集的混合索引的指示时,过程可以进行到图200c。在图200c中,本地DMS 210的文档集合212可以根据所接收的指示被划分成两个文档子集212-1和212-2。可以在本地DMS 210上创建SSA 216,以获得文档子集212-1的混合索引子集224,并且可以在本地DMS 210上创建SSA 218,以获得文档子集212-2的混合索引子集232。区域X或区域Y可以与区域A相同或与区域A不同。混合索引子集224可以包括与文档子集212-1相对应的一组混合索引,例如混合索引X1至混合索引XX。混合索引子集232可以包括与文档子集212-2相对应的一组混合索引,例如,混合索引Y1至混合索引YY。
SSA 216可以具有全局唯一的SSAID,例如“T-A-new-1”。混合索引子集224中的针对文档中的至少一个元素的混合索引可以包括例如租户T的TenantID、SSA 216的SSAID、该混合索引的IndexID等。由于混合索引子集224与属于租户T的文档子集212-1相对应并且是通过SSA 216获得的,因此混合索引子集224中的所有混合索引的TenantID和SSAID都是相同的。也就是说,所有混合索引的TenantID都可以是“T”,并且所有混合索引的SSAID都可以是“T-A-new-1”。例如,混合索引子集224中的混合索引x(X1≤X≤XX)可以是“<TenantID=T,SSAID=T-A-new-1,IndexID=x...>。可以在区域X中的数据中心220上托管混合索引子集224。区域X可以是在所接收的指示中指示的用于托管混合索引子集224的指定区域。
SSA 218可以具有全局唯一的SSAID,例如“T-A-new-2”。混合索引子集232中的针对文档中至少一个元素的混合索引可以包括例如租户T的TenantID、SSA 218的SSAID、该混合索引的IndexID等。由于混合索引子集232与属于租户T的文档子集212-2相对应并且是通过SSA 218获得的,因此混合索引子集232中的所有混合索引的TenantID和SSAID都是相同的。也就是说,所有混合索引的TenantID都可以是“T”,并且所有混合索引的SSAID都可以是“T-A-new-2”。例如,混合索引子集232中的混合索引y(Y1≤y≤YY)可以是“<TenantID=T,SSAID=T-A-new-2,IndexID=y...>”。可以在区域Y中的数据中心230上托管混合索引子集232。区域Y可以是在所接收的指示中指示的用于托管混合索引子集232的指定区域。
应当理解,图2A至图2C所示的图200a至200c仅仅是示例。取决于实际应用需求,图200a至200c中的各个部分可以具有任何其他结构,并且可以包括更多或更少的元素。例如,本地DMS 210以及数据中心220和230中的任何一个数据中心还可以包括可以被配置用于执行搜索操作的搜索组件。此外,虽然在图200c中,文档集合212的混合索引是在两个数据中心上建立的,但文档集合212的混合索引可以在任意数量的数据中心上建立。
图3示出了根据本公开实施例的用于跨区域移动文档的混合索引的示例性过程300。文档可以由本地DMS管理。可以在原始区域中的原始数据中心上托管文档的原始混合索引。
在302处,可以接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示。每个新的混合索引子集可以对应一个文档子集。文档子集可以包括由本地DMS管理的文档集合中的部分或全部文档。在一种实施方式中,可以通过与本地DMS相关联的UI来接收该指示。例如,该指示可以包括用于托管至少一个混合索引子集的至少一个指定区域,其可以是通过UI选择的。该指示可以涉及至少一个文档子集。在第一种情况下,该指示中涉及的至少一个文档子集可以仅包含一个文档子集,该文档子集覆盖该文档集合中的所有文档,即该文档子集是该文档集合本身,并且该指示可以指示:将在一个指定区域中的一个目标数据中心上建立文档集合的新的混合索引集合。在第二种情况下,该指示中涉及的至少一个文档子集可以包含两个或更多个文档子集,这些文档子集的组合覆盖了文档集合中的所有文档,并且该指示可以指示:将分别在与原始数据中心不同的、两个或更多个指定区域中的两个或更多个目标数据中心上建立两个或更多个文档子集的新的混合索引子集。在第三种情况下,该指示中涉及的至少一个文档子集可以包含两个或更多个文档子集,这些文档子集的组合覆盖了文档集合中的所有文档,并且该指示可以指示:将在与原始数据中心相同的目标数据中心上建立一个文档子集的新的混合索引子集,同时将分别在与原始数据中心不同的、一个或多个指定区域中的一个或多个目标数据中心上建立一个或多个其他文档子集的新的混合索引子集。在第四种情况下,该指示中涉及的至少一个文档子集可以包含一个或多个文档子集,这些文档子集的组合覆盖了文档集合中的一部分文档,并且该指示可以指示:将分别在与原始数据中心不同的、一个或多个指定区域中的一个或多个目标数据中心上建立一个或多个文档子集的新的混合索引子集。在这种情况下,该指示可以隐含地指示:将在原始数据中心中保持文档集合中未由该指示中的文档子集涵盖的那些文档的混合索引。相应地,过程300可以为这些未被涵盖的文档定义文档子集,并进一步在原始数据中心上重新建立该文档子集的新的混合索引子集。
在304处,响应于接收到该指示,可以在本地DMS上创建至少一个新的SSA。新的SSA可以被配置为获得用于文档子集的新的混合索引子集。新的SSA可以具有全局唯一的SSAID,例如“SSA-new”。
可能已经存在该文档集合的混合索引,即原始混合索引集合,它们被托管在原始数据中心上。原始混合索引集合可以包括该文档子集的原始混合索引。原始数据中心可以是目标数据中心,或者是原始区域中的不同数据中心。当原数据中心是目标数据中心时,可以在与原混合索引集合相同的数据中心上建立新的混合索引子集。原始混合索引集合可以通过原始SSA获得。原始SSA可以具有全局唯一的SSAID,例如“SSA-original”。原始混合索引集合中的每个混合索引可以不包括SSAID,或者可以包括原始SSA的SSAID。可以通过原始SSA不断更新原始混合索引集合。
由于已经存在针对该文档集合的原始混合索引集合,因此为了避免在混合搜索的搜索结果中重复呈现文档,在306处,可以在获得新的混合索引子集之前设置第一搜索限制,使得混合搜索排除使用新的混合索引子集。在一种实施方式中,可以通过在与混合搜索相关联的UI中设置属性过滤器来设置第一搜索限制。例如,属性过滤器可以被设置为“SSAID<>SSA-new”,使得混合搜索排除使用包括新的SSA的SSAID,即“SSA-new”,的混合索引。符号“<>”可以表示“不等于”。
随后,可以通过新的SSA获得新的混合索引子集,并将其托管在指定区域中的目标数据中心上。
在308处,可以通过新的SSA获得文档子集中的文档的混合索引。例如,新的SSA可以爬取文档,并且建立文档的混合索引。新的混合索引子集中的混合索引可以对应于文档子集中的文档中的至少一个元素。在一种实施方式中,混合索引可以包括租户的TenantID、新的SSA的SSAID、该混合索引的IndexID等等。
在310处,可以在指定区域中的至少一个目标数据中心上托管所获得的混合索引。例如,SSA可以将所获得的混合索引提供给目标数据中心,并且目标数据中心可以托管所获得的混合索引。
在312处,可以确定是否已经获得了文档子集中的所有文档的混合索引。如果在312处确定尚未获得文档子集中的所有文档的混合索引,则过程300可以返回到308,在308处可以通过新的SSA获得文档子集中剩余文档的混合索引。如果在312处确定已经获得了文档子集中的所有文档的混合索引,则过程300可以进行到314。
在314处,可以删除第一搜索限制,使得混合搜索可以使用新的混合索引子集。由于原始混合索引集合当前可以由混合搜索使用,为了避免在混合搜索的搜索结果中重复呈现文档,在314处,在删除第一搜索限制时,可以设置第二搜索限制,使得混合搜索排除使用原始混合索引集合。在一种实施方式中,可以通过在与混合搜索相关联的UI中设置属性过滤器来设置第二搜索限制。作为一个示例,当原始混合索引集合中的每个混合索引不包括SSAID时,可以将属性过滤器设置为“SSAID<>EMPTY”,使得混合搜索排除使用针对该文档集合的不包括SSAID的混合索引。作为另一示例,当原始混合索引集合中的每个混合索引都包括原始SSA的SSAID,即“SSA-original”,时,可以将属性过滤器设置为“SSAID<>SSA-original”,使得混合搜索排除使用包括原始SSA的SSAID的混合索引。
可以对新的混合索引子集执行验证。在316处,可以确定对新的混合索引子集的验证是否通过。在一种实施方式中,可以利用新的混合索引子集来执行混合搜索,并且可以基于混合搜索的搜索结果来确定验证是否通过。例如,如果搜索结果包括满足至少一个接收的搜索查询的所有期望文档,则验证通过。在另一种实施方式中,可以确定新的混合索引子集中的混合索引条目的数量,并且可以基于该数量来确定验证是否通过。例如,可以将新的混合索引子集中的混合索引条目的数量与文档子集的原始混合索引集合中的混合索引条目的数量进行比较,并且如果新的混合索引子集中的混合索引条目的数量与文档子集的原始混合索引集合中的混合索引条目的数量相匹配,则验证通过。在本文中,混合索引条目可以指记录在混合索引集合或子集中的相应混合索引的数据项。
如果在316处确定对新的混合索引子集的验证未通过,则过程300可以进行到318。在318处,可以识别验证中的一个或多个错误,并且可以采取相应的解决方案来解决这些错误。作为一个示例,当利用新的混合索引子集来执行混合搜索并且搜索结果不包括满足至少一个接收的搜索查询的所有期望文档时,可以对搜索结果进行分析以确定哪些文档不包括在搜索结果中。此外,还可以进一步确定这些文档的混合索引是否被正确建立。可以采取相应的解决方案来纠正错误的混合索引。作为另一示例,当新的混合索引子集中的混合索引条目的数量与文档子集的原始混合索引集合中的混合索引条目的数量不匹配时,可以确定哪些文档的混合索引没有被包括在新的混合索引子集中。可以采取相应的解决方案来补充遗漏的混合索引。
如果在316处确定对新的混合索引子集的验证通过,则过程可以进行到320,在320处,可以清除文档集合的原始混合索引集合。在一种实施方式中,可以通过以下操作来清除原始混合索引集合:停止通过原始SSA来更新原始混合索引集合中的针对该文档集合的混合索引,和/或删除原始混合索引集合。
在原始混合索引集合中的所有混合索引都已经被删除的情况下,过程300可以进行到322,在322处可以删除第二搜索限制。替代地或另外地,原始SSA也可以被删除。
通过过程300,数据所有者的单个本地DMS的部分或全部文档的混合索引可以跨区域移动,例如移动到单个指定区域中的单个目标数据中心,或者移动到多个指定区域中的多个目标数据中心。也就是说,通过上述方法,可以将数据所有者的特定本地DMS的部分或全部文档的混合索引移动到任意数量的目标数据中心,这可能是有益的,尤其是在数据驻留策略的要求发生变化时。此外,在移动混合索引时,可以通过设置搜索限制,将原始混合索引集合切换到至少一个新的混合索引子集。这种方法不会影响终端用户执行混合搜索,并且对终端用户是透明的。
应当理解,图3中的过程300只是用于跨区域移动文档的混合索引的过程的示例。根据实际应用需求,用于跨区域移动文档的混合索引的过程可以包括任何其他步骤,可以包括更多或更少的步骤,并且可以以不同的顺序来执行这些步骤。例如,虽然在过程300中,可以在已经获得了文档子集中的所有文档的混合索引之前将混合索引托管在数据中心上,但在已经获得了文档子集中的所有文档的混合索引之后将混合索引托管在数据中心上也是可以的。另外,过程300还可以适用于将在相同区域中的相同数据中心上重新建立混合索引的场景。也就是说,新的混合索引子集可以建立在与建立原始索引集合的数据中心相同的数据中心上。
图4A至图4G示出了根据本公开实施例的用于跨区域移动文档的混合索引的示例,包括示意图400a至400g。图4A至图4G中的示意图400a至400g可以对应于图3中的过程300。图400a至400d旨在描述将本地DMS的所有文档的混合索引从区域K移动到区域X的过程。图400a和图400e至400g旨在描述将本地DMS的部分文档的混合索引从区域K移动到区域X和区域Y的过程。
在图400a中,本地DMS 410可以属于租户T并且位于区域A中。本地DMS 410可以管理文档集合412。文档集合412可以包括一组文档,例如文档1至文档M,其中M≥1表示文档的数量。
目前,已经存在托管在区域K中的数据中心420上的、文档集合412的混合索引集合422。另外,区域X中的数据中心430和区域Y中的数据中心440均不包括文档集合412的混合索引。区域K、区域X和区域Y中的任何一个区域可以与区域A相同或与区域A不同。混合索引集合422可能是已经通过SSA 414获得的,SSA 414也可以被称为原始SSA。SSA 414可以具有全局唯一的SSAID,例如“T-A”。混合索引集合422可以包括与文档集合412相对应的一组混合索引,其中,混合索引集合422中的混合索引可以对应于文档集合412中的文档中的至少一个元素。文档集合412包括M个文档,并且混合索引集合422可以包括与文档集合412中的M个文档相对应的N个混合索引。混合索引集合422中的混合索引可以包括例如租户T的TenantID、SSA 414的SSAID、该混合索引的IndexID等。由于混合索引集合422与属于租户T的文档集合412相对应并且是通过SSA 414获得的,因此混合索引集合422中的所有混合索引的TenantID和SSAID都是相同的。也就是说,所有混合索引的TenantID都可以是“T”,并且所有混合索引的SSAID都可以是“T-A”。例如,混合索引集合422中的混合索引n(1≤n≤N)可以是“<TenantID=T,SSAID=T-A,IndexID=n...>”。
当接收到用于将文档集合412的混合索引移动到指定区域X或在指定区域X中建立文档集合412的混合索引的指示时,过程可以进行到图400b。在图400b中,可以在本地DMS410上创建SSA 416,以获得文档集合412的混合索引集合432。SSA 416可以具有全局唯一的SSAID,例如“T-A-new”。
由于已经存在文档集合412的混合索引,即混合索引集合422,因此为了避免在混合搜索的搜索结果中重复呈现文档,在获得混合索引集合432之前,可以在数据中心420和/或数据中心430上设置第一搜索限制,使得混合搜索排除使用混合索引集合432。在一种实施方式中,第一搜索限制可以被设置为使得混合搜索排除使用包括SSA 416的SSAID的混合索引。例如,与混合搜索相关联的属性过滤器可以被设置为“SSAID<>T-A-new”。
在设置了第一搜索限制之后,可以通过SSA 416获得文档集合412中文档的混合索引,如图400b中的混合索引集合432所示。混合索引集合432中的每个混合索引可以包括例如租户T的TenantID、SSA 416的SSAID、该混合索引的IndexID等。由于混合索引集合432与属于租户T的文档集合412相对应并且是通过SSA 416获得的,因此混合索引集合432中的所有混合索引的TenantID和SSAID都是相同的。也就是说,所有混合索引的TenantID都可以是“T”,并且所有混合索引的SSAID都可以是“T-A-new”。例如,混合索引集合432中的混合索引n(1≤n≤N)可以是“<TenantID=T,SSAID=T-A-new,IndexID=n...>”。
当已经获得了文档集合412中的所有文档的混合索引时,过程可以进行到图400c。在图400c中,混合索引集合432包括与文档集合412中的M个文档相对应的N个混合索引。在这种情况下,可以删除第一搜索限制,例如“SSAID<>TA-new”,并且可以在数据中心420和/或数据中心430上设置第二搜索限制,使得混合搜索排除使用混合索引集合422。在一种实施方式中,第二搜索限制可以被设置为使得混合搜索排除使用包括SSA 414的SSAID的混合索引。例如,与混合搜索相关联的属性过滤器可以被设置为“SSAID<>T-A”。
随后,可以对混合索引集合432执行验证。可以以与图3中的步骤316中描述的方式类似的方式来执行验证。如果确定对混合索引集合432的验证通过,则过程可以进行到图400d。在图400d中,可以停止通过SSA 414更新混合索引集合422中的针对文档集合412的混合索引。可以删除混合索引集合422。可以删除SSA 414。可以删除第二搜索限制,例如“SSAID<>T-A”。优选地,在混合索引集合422中的所有混合索引都已经被删除的情况下,可以删除SSA 414。优选地,在混合索引集合422中的所有混合索引都已经被删除的情况下,可以删除第二搜索限制。
图400a以及图400e至400g旨在描述用于将本地DMS 410的部分文档的混合索引从区域K移动到区域X和区域Y的过程。在图400e中,文档集合412可以被划分成三个文档子集412-1、412-2和412-3。
当接收到用于将文档子集412-2的混合索引移动到指定区域X并且将文档子集412-3的混合索引移动到指定区域Y,或者在指定区域X中建立文档子集412-2的混合索引并且在指定区域Y中建立文档子集412-3的混合索引的指示时,可以在本地DMS 410上创建SSA417,以获得文档子集412-1的混合索引子集424,可以在本地DMS 410上创建SSA 418,以获得文档子集412-2的混合索引子集434,并且可以在本地DMS 410上创建SSA 419,以获得文档子集412-3的混合索引子集442。SSA 417可以具有全局唯一的SSAID,例如“T-A-new-1”。SSA 418可以具有全局唯一的SSAID,例如“T-A-new-2”。SSA 419可以具有全局唯一的SSAID,例如“T-A-new-3”。
由于已经存在文档集合412的混合索引,即混合索引集合422,因此为了避免在混合搜索的搜索结果中重复呈现文档,在获得混合索引子集424、434和442之前,可以在指定区域X中的数据中心420、指定区域Y中的数据中心430和指定区域Z中的数据中心440中的一个或多个数据中心上设置第一搜索限制,使得混合搜索排除使用混合索引子集424、434和442。在一种实施方式中,第一搜索限制可以被设置为使得混合搜索排除使用包括SSA 417的SSAID的混合索引、包括SSA 418的SSAID的混合索引以及包括SSA 419的SSAID的混合索引。例如,与混合搜索相关联的属性过滤器可以被设置为“SSAID<>T-A-new-1”、“SSAID<>T-A-new-2”以及“SSAID<>T-A-new-3”。
在设置了第一搜索限制之后,可以通过SSA 417获得文档集合412中的文档子集412-1的混合索引子集424。混合索引子集424中的每个混合索引可以包括例如租户T的TenantID、SSA 417的SSAID、该混合索引的IndexID等。例如,混合索引子集424中的混合索引k可以是“<TenantID=T,SSAID=TA-new-1,IndexID=k...>”。可以在指定区域X中的数据中心420上托管混合索引子集424。可以通过SSA 418获得文档集合412中的文档子集412-2的混合索引子集434。混合索引子集434中的每个混合索引可以包括例如租户T的TenantID、SSA 418的SSAID、该混合索引的IndexID等。例如,混合索引子集434中的混合索引x可以是“<TenantID=T,SSAID=TA-new-2,IndexID=x...>”。可以在指定区域Y中的数据中心430上托管混合索引子集434。可以通过SSA 419获得文档集合412中的文档子集412-3的混合索引子集442。混合索引子集442中的每个混合索引可以包括例如租户T的TenantID、SSA 419的SSAID、该混合索引的IndexID等。例如,混合索引子集442中的混合索引y可以是“<TenantID=T,SSAID=TA-new-3,IndexID=y...>”。可以在指定区域Z中的数据中心440上托管混合索引子集442。
当已经获得了文档集合412中的所有文档子集的混合索引时,过程可以进行到图400f。在图400f中,混合索引子集424包括与文档子集412-1中的所有文档相对应的混合索引,混合索引子集434包括与文档子集412-2中的所有文档相对应的混合索引,并且混合索引子集442包括与文档子集412-3中的所有文档相对应的混合索引。在这种情况下,可以删除第一搜索限制,例如“SSAID<>TA-new-1”、“SSAID<>TA-new-2”和“SSAID<>TA-new-3”,并且可以在数据中心420、430和440中的一个或多个数据中心上设置第二搜索限制,使得混合搜索排除使用混合索引集合422。在一种实施方式中,第二搜索限制可以被设置为使得混合搜索排除使用包括SSA 414的SSAID的混合索引。例如,与混合搜索相关联的属性过滤器可以被设置为“SSAID<>T-A”。
随后,可以对混合索引子集424、434和442执行验证。可以以与图3中的步骤316中描述的方式类似的方式来执行验证。如果确定对混合索引子集424、434和442的验证通过,则过程可以进行到图400g。在图400g中,可以停止通过SSA 414更新混合索引集合422中的针对文档集合412的混合索引。可以删除混合索引集合422。可以删除第二搜索限制,例如“SSAID<>T-A”。可以删除SSA 414。优选地,在混合索引集合422中的所有混合索引都已经被删除的情况下,可以删除第二搜索限制。优选地,在混合索引集合422中的所有混合索引都已经被删除的情况下,可以删除SSA 414。
应当理解,图4A至图4G所示的图400a至400g仅仅是示例。取决于实际应用需求,图400a至400g中的各个部分可以具有任何其他结构,并且可以包括更多或更少的元素。例如,本地DMS 410以及数据中心420、430和440中的任何一个数据中心还可以包括可以被配置用于执行搜索操作的搜索组件。此外,虽然在图400a和图400e至400g中,文档集合412被划分成三个文档子集并且两个文档子集的混合索引被移动到两个数据中心,但是文档集412可以被划分成任意数量的文档子集,并且相应地,任意数量的文档子集的混合索引可以被移动到任意数量的数据中心。
图4A至图4G示出了用于跨区域移动文档的混合索引的过程。混合索引集合422中的针对图400a中所示的文档集合412中的文档中的至少一个元素的混合索引包括租户T的TenantID、SSA 414的SSAID以及该混合索引的IndexID。在一些情况下,混合索引集合422中的针对文档集合412中的文档中的至少一个元素的混合索引可以不包括SSA 414的SSAID,例如,不包括SSAID。例如,混合索引集合422中的混合索引n(1≤n≤N)可以是“<TenantID=T,IndexID=n...>”。在这种情况下,用于跨区域移动文档的混合索引的过程可以类似于图4A至图4G所示的过程,除了第二搜索限制之外。第二搜索限制可以被设置为使得混合搜索排除使用不包括文档412的SSAID的混合索引。例如,与混合搜索相关联的属性过滤器可以被设置为“SSAID<>EMPTY”。
以上结合图1至图4阐述的详细描述描述了用于多区域混合索引管理的示例性过程。通过上述过程,可以在一个或多个指定区域中的一个或多个目标数据中心上分别托管由本地DMS管理的文档的新的混合索引。例如,可以在指定区域中的目标数据中心上托管文档集合的新的混合索引集合或文档子集的新的混合索引子集。新的混合索引集合或新的混合索引子集可以适用于各种混合搜索,例如云混合搜索(cloud hybrid searching)、联合搜索(federated searching)等,其中,联合搜索可以包括出站联合搜索(outboundfederated searching)、入站联合搜索(inbound federated searching)、复合的出站及入站联合搜索(mixed outbound and inbound federated searching)等等。根据本公开实施例的用于多区域混合索引管理过程可以实现更加灵活多样的混合搜索拓扑结构,以满足不同的混合索引管理要求。例如,目前对于各种混合搜索,租户的所有本地DMS的所有混合索引都被托管在一个区域中的一个数据中心上。而通过上述用于多区域混合索引管理的过程,可以将租户的各个本地DMS的混合索引托管在多个区域中的多个数据中心上,从而更好地满足数据管理的需要、数据驻留政策的要求等等。
图5A和图5B分别示出了根据本公开实施例的云混合搜索的示例性拓扑结构500a和500b。拓扑结构500a和500b可以各自包括本地环境和云环境。
本地环境可以包括租户在三个区域中的三个本地DMS,例如区域A中的本地DMS510、区域B中的本地DMS 520以及区域C中的本地DMS 530。每个本地DMS可以包括由本地DMS管理的文档集合。例如,本地DMS 510可以包括文档集合512,本地DMS 520可以包括文档集合522,并且本地DMS 530可以包括文档集合532。每个本地DMS还可以包括搜索组件,该搜索组件可以被配置用于执行搜索操作,例如接收搜索查询、通过使用索引来执行针对搜索查询的搜索、提供搜索的搜索结果等等。例如,本地DMS 510可以包括搜索组件514,本地DMS520可以包括搜索组件524,并且本地DMS 530可以包括搜索组件534。
云环境可以包括多个区域中的多个数据中心。例如,拓扑500a中的云环境可以包括区域X中的数据中心540、区域Y中的数据中心550以及区域Z中的数据中心560。区域X、区域Y和区域Z中的任何一个区域可以与区域A、区域B和区域C中的任何一个区域相同。每个数据中心可以为一个或多个本地DMS托管混合索引。可选地,在本地DMS期望在本地存储一些文档并且将其他文档远程存储在数据中心的情况下,则数据中心还可以为本地DMS存储其他文档,并相应地,这些文档的索引也可以被托管在数据中心上。在本文中,本地存储在本地DMS上的文档可以被称为本地文档,并且远程存储在数据中心中的文档可以被称为远程文档。因此,托管在数据中心上的索引集合可以包括存储在本地DMS中的本地文档集合的混合索引集合以及存储在数据中心中的远程文档集合的非混合索引(non-hybrid index)集合。非混合索引集合可以包括一组非混合索引。在本文中,非混合索引可以指其被托管在一位置并且其相应文档被存储在相同位置的索引。
在一种实施方式中,可以在不同的数据中心上托管每个本地DMS的本地文档集合的混合索引集合、远程文档集合的可能的非混合索引集合以及该远程文档集合。例如,在拓扑集合500a中,可以在数据中心540上托管文档集合512的混合索引集合,也就是说,数据中心540上的索引集合542可以包括文档集合512的混合索引集合。可以在数据中心550上托管本地DMS 520的文档集合522的混合索引集合和文档集合554a的非混合索引集合以及该远程文档集合554a,也就是说,数据中心550上的索引集合552a可以包括文档集合522的混合索引集合以及文档集合554a的非混合索引集合。可以在数据中心560上托管本地DMS 530的文档集合532的混合索引集合和文档集合564的非混合索引集合以及该远程文档集合564,也就是说,数据中心560上的索引集合562可以包括文档集合532的混合索引集合以及文档集合564的非混合索引集合。
在另一种实施方式中,可以在与至少一个另一本地DMS相同的数据中心上托管本地DMS的本地文档集合的混合索引集合、远程文档集合的可能的非混合索引集合以及该远程文档集合。例如,在拓扑结构500b中,可以在数据中心550上托管本地DMS 520的文档集合522的混合索引集合、远程文档集合的非混合索引集合和该远程文档集合,以及本地DMS530的文档集合532的混合索引集合、远程文档集合的非混合索引集合以及该远程文档集合,也就是说,数据中心550上的索引集合552b可以包括文档集合522的混合索引集合、文档集合532的混合索引集合以及文档集合554b的非混合索引集合,其中,文档集合554b可以包括本地DMS 520的远程文档集合和本地DMS 530的远程文档集合。
每个数据中心还可以包括搜索组件,该搜索组件可以被配置用于执行搜索操作,例如接收搜索查询、通过使用索引来执行针对搜索查询的搜索、提供搜索的搜索结果等等。例如,数据中心540可以包括搜索组件546,数据中心550可以包括搜索组件556,并且数据中心560可以包括搜索组件566。
在拓扑结构500a和500b中,可以由每个搜索组件用于执行搜索的索引集合通过双向箭头来指示。在一种实施方式中,本地DMS中的搜索组件可以使用与该本地DMS相对应的数据中心上的索引集合。类似地,数据中心中的搜索组件可以使用该数据中心上的索引集合。例如,搜索组件514可以使用索引集合542,搜索组件546可以使用索引集合542等等。
图6A至图6C分别示出了根据本公开实施例的联合搜索的示例性拓扑结构600a至600c。拓扑结构600a可以对应于出站联合搜索,拓扑结构600b可以对应于入站联合搜索,并且拓扑结构600c可以对应于复合的出站及入站联合搜索。拓扑结构600a至600c可以各自包括本地环境和云环境。
本地环境可以包括租户在三个区域中的三个本地DMS,例如区域A 610中的本地DMS、区域B 620中的本地DMS 520以及区域C 630中的本地DMS。云环境可以包括三个区域中的三个数据中心,例如区域X中的数据中心640、区域Y中的数据中心650以及区域Z中的数据中心660。区域X、区域Y和区域Z中的任何一个区域可以与区域A、区域B和区域C中的任何一个区域相同。
每个本地DMS可以包括例如其索引集合被托管在本地DMS上的文档集合以及其索引集合被托管在云环境中的数据中心上的文档集合。每个数据中心可以为一个或多个本地DMS的一个或多个本地文档集合托管一个或多个混合索引集合。可选地,在本地DMS期望在数据中心中存储一些远程文档的情况下,数据中心可以进一步存储本地DMS的这些远程文档,并且相应地,这些远程文档的索引也可以被托管在数据中心上。
例如,本地DMS 610可以包括其索引集合614被托管在本地DMS 610上的文档集合612以及其索引集合642被托管在数据中心640上的文档集合616。本地DMS 620可以包括其索引集合624被托管在本地DMS 620上的文档集合622以及其混合索引集合被托管在数据中心650上的文档集合626。数据中心650还可以存储本地DMS 620的文档集合654,并且相应地,可以在数据中心650上托管文档集合654的非混合索引集合。也就是说,数据中心650上的索引集合652可以包括文档集合626的混合索引集合以及文档集合654的非混合索引集合。本地DMS 630可以包括其索引集合634被托管在本地DMS 630上的文档集合632以及其混合索引集合被托管在数据中心660上的文档集合636。数据中心660还可以存储本地DMS 630的文档集合664,并且相应地,可以在数据中心660上托管文档集合664的非混合索引集合。也就是说,数据中心660上的索引集合662可以包括文档集合636的混合索引集合以及文档集合664的非混合索引集合。
每个本地DMS还可以包括搜索组件,该搜索组件可以被配置用于执行搜索操作,例如接收搜索查询、使用索引来执行针对搜索查询的搜索、提供搜索的搜索结果等等。例如,本地DMS 610可以包括搜索组件618,本地DMS 620可以包括搜索组件628,并且本地DMS 630可以包括搜索组件638。
每个数据中心还可以包括搜索组件,该搜索组件可以被配置用于执行搜索操作,例如接收搜索查询、使用索引来执行针对搜索查询的搜索、提供搜索的搜索结果等等。例如,数据中心640可以包括搜索组件646,数据中心650可以包括搜索组件656,并且数据中心660可以包括搜索组件666。
在拓扑结构600a至600c中,可以由每个搜索组件用于执行搜索的索引集合通过双向箭头来指示。在一种实施方式中,本地DMS中的搜索组件可以使用与该本地DMS相对应的数据中心上的索引集合。类似地,数据中心中的搜索组件可以使用该数据中心上的索引集合。在出站联合搜索的拓扑结构600a中,本地DMS中的搜索组件可以使用该本地DMS中的索引集合和与该本地DMS相对应的数据中心中的索引集合二者,而数据中心中的搜索组件可以仅使用数据中心中的索引集合。例如,搜索组件618可以使用索引集合614和索引集合642二者,而搜索组件646可以仅使用索引集合642。在入站联合搜索的拓扑结构600b中,本地DMS中的搜索组件可以仅使用该本地DMS中的索引集合,而数据中心中的搜索组件可以使用与该数据中心相对应的本地DMS中的索引集合和该数据中心中的索引集合二者。例如,搜索组件618可以仅使用索引集合614,而搜索组件646可以使用索引集合614和索引集合642二者。在复合的出站及入站联合搜索的拓扑结构600c中,本地DMS中的搜索组件可以使用该本地DMS中的索引集合和与该本地DMS相对应的数据中心中的索引集合二者,并且数据中心中的搜索组件可以使用与该数据中心相对应的本地DMS中的索引集合和该数据中心中的索引集合二者。例如,搜索组件618可以使用索引集合614和索引集合642二者,并且搜索组件646可以使用索引集合614和索引集合642二者。
应当理解,图5A和图5B以及图6A至图6C中所示的拓扑结构仅仅是示例性的。取决于实际应用需求,根据本公开实施例的用于多区域混合索引管理的过程可以实现混合搜索的任何其他拓扑结构。在一种实施方式中,与图5中的云混合搜索的拓扑结构500b类似,对于联合搜索,可以在与至少一个另一本地DMS相同的数据中心上托管本地DMS的本地文档集合的混合索引集合、远程文档集合的可能的非混合索引集合以及该远程文档集合。例如,可以在相同数据中心650上托管本地DMS 620的文档集合626的混合索引集合、远程文档集合654的非混合索引集合以及该远程文档集合654,以及本地DMS 630的文档集合636的混合索引集合、远程文档集合664的非混合索引集合以及该远程文档集合664。此外,虽然在图5A和图5B以及图6A至图6C中,本地DMS的文档的混合索引被托管在单个数据中心上,但是本地DMS的文档的混合索引也可以通过例如图2A和图2C的过程或图4A和图4E至图4G的过程被托管在任意数量的数据中心上。在这种情况下,数据中心中的索引集合还可以包括通过图2A和图2B的过程或图4A和图4E至图4G的过程建立的混合索引子集。
在图5A和图5B以及图6A至图6C中,本地DMS中的搜索组件可以使用与该本地DMS相对应的数据中心上的索引集合来执行搜索。类似地,数据中心中的搜索组件可以使用该数据中心上的索引集合来执行搜索。根据本公开的一个实施例,本地DMS中的搜索组件可以将其接收的搜索查询转发到多区域搜索组件,以获得通过使用在与本地DMS不对应的其他数据中心中的索引集合检索到的更多搜索结果。类似地,数据中心的搜索组件可以将其接收的搜索查询转发到多区域搜索组件,以获得通过使用其他数据中心中的索引集合检索到的更多搜索结果。多区域搜索组件可以被配置为执行多区域搜索操作。例如,多区域搜索组件可以从搜索组件接收搜索查询,并根据预定配置将搜索查询扇出(fan out)到一个或多个区域中的一个或多个数据中心。随后,多区域搜索组件可以从一个或多个数据中心获得针对该搜索查询的一个或多个搜索结果。每个搜索结果可以是通过使用相应数据中心上的相应索引集合而检索到的。多区域搜索组件然后可以对一个或多个搜索结果进行聚合,并将经聚合的一个或多个搜索结果提供给搜索组件。
在一种实施方式中,多区域搜索组件可以位于云环境中的任何数据中心之外,并且用作公共多区域搜索组件。在这种情况下,多区域搜索组件可以从任何本地DMS中的搜索组件或任何数据中心中的搜索组件接收搜索查询。在另一种实施方式中,多区域搜索组件可以位于数据中心中,并且用作数据中心的专用多区域搜索组件。在这种情况下,多区域搜索组件可以只接收来自与该数据中心相对应的本地DMS中的搜索组件和/或该数据中心中的搜索组件的搜索查询。
图7A至图7B示出了根据本公开实施例的采用多区域搜索机制的云混合搜索的示例性拓扑结构700a和700b。拓扑结构700a和700b与图5A中的云混合搜索的拓扑结构500a相似,除了拓扑结构700a和700b还包括云环境中的多区域搜索组件之外。拓扑结构700a和700b可以各自包括本地环境和云环境。
本地环境可以包括租户在三个区域中的三个本地DMS,例如区域A中的本地DMS710、区域B中的本地DMS 720以及区域C中的本地DMS 730。本地DMS 710可以包括文档集合712和搜索组件714。本地DMS 720可以包括文档集合722和搜索组件724。本地DMS 730可以包括文档集合732和搜索组件734。
云环境可以包括区域X中的数据中心740、区域Y中的数据中心750以及区域Z中的数据中心760。区域X、区域Y和区域Z中的任何一个区域可以与区域A、区域B和区域C中的任何一个区域相同。数据中心740可以托管文档集合712的混合索引集合742。数据中心750可以托管本地DMS 720的文档集合722和文档集合754的索引集合752,以及文档集合754。数据中心760可以托管本地DMS 730的文档集合732和文档集合764的索引集合762,以及文档集合764。此外,每个数据中心还可以包括搜索组件。数据中心740可以包括搜索组件746,数据中心750可以包括搜索组件756,并且数据中心760可以包括搜索组件766。
云环境还可以包括多区域搜索组件770。多区域搜索组件770可以位于数据中心740、750和760之外,并且用作公共多区域搜索组件。搜索组件714、724、734、746、756和766中的每个搜索组件可以将其接收的搜索查询转发到多区域搜索组件770。因此,多区域搜索组件770可以从任何本地DMS中的搜索组件或者任何数据中心中的搜索组件接收搜索查询。作为一个示例,在拓扑结构700a中,多区域搜索组件770可以从数据中心750中的搜索组件756接收搜索查询,将搜索查询扇出到数据中心740、750和760,获得通过使用数据中心740上的索引集合742、数据中心750上的索引集合752和数据中心760上的索引集合762检索到的搜索结果,对搜索结果进行聚合,并且将经聚合的搜索结果提供给搜索组件756。作为另一示例,在拓扑结构700a中,多区域搜索组件770可以从本地DMS 750中的搜索组件724接收搜索查询,将搜索查询扇出到数据中心740、750和760,获得通过使用数据中心740上的索引集合742、数据中心750上的索引集合752和数据中心760上的索引集合762检索到的搜索结果,对搜索结果进行聚合,并且将经聚合的搜索结果提供给搜索组件724。
应当理解,采用图7A和图7B所示的多区域搜索机制的云混合搜索的拓扑结构770a和700b仅仅是示例性的。取决于实际应用需求,采用多区域搜索机制的云混合搜索的拓扑结构可以具有任何其他结构,并且可以包括更多或更少的元素。例如,虽然在拓扑结构700a和700b中,多区域搜索组件770可以将搜索查询扇出到所有数据中心740、750和760,并且从所有数据中心740、750和760获得搜索查询的搜索结果,但多区域搜索组件770也可以仅将搜索查询扇出到数据中心740、750和760中的一个或两个指定的数据中心,并且相应地仅从这一个或两个指定的数据中心获得搜索查询的搜索结果。此外,虽然在拓扑结构700a和700b中,只有一个多区域搜索组件可以处理来自所有搜索组件714、724、734、746、756和766的搜索查询,但根据预定配置,也可以有多于一个的多区域搜索组件位于任何数据中心之外,并且每个多区域搜索组件可以处理来自搜索组件714、724、734、746、756和766的搜索查询。例如,假设有两个多区域搜索组件位于任何数据中心之外。第一多区域搜索组件可以被配置用于处理来自搜索组件714、724、746和756的搜索查询。第二多区域搜索组件可以被配置用于处理来自搜索组件734和766的搜索查询。此外,虽然在拓扑结构700a和700b中,多区域搜索组件770是位于任何数据中心之外的公共多区域搜索组件,但多区域搜索组件770也可以是位于数据中心的专用多区域搜索组件。例如,假设多区域搜索组件700位于数据中心740中,则多区域搜索组件770然后可以仅从搜索组件714和/或搜索组件746接收搜索查询。相应地,多个专用多区域搜索组件可以分别部署在多个数据中心中。
此外,还应理解,其他拓扑结构,例如图5B中的拓扑结构500b、图6A至图6C中的拓扑结构600a至600c等,也可以采用多区域搜索机制,例如通过在云环境中设置一个或多个多区域搜索组件。
图8是根据本公开实施例的用于多区域混合索引管理的示例性方法800的流程图。
在810处,可以接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示。每个新的混合索引子集可以对应一个文档子集。所述文档子集可以包括由DMS管理的文档集合中的部分或全部文档。
在820处,可以在所述DMS上创建至少一个新的SSA。
在830处,可以通过所述新的SSA获得所述新的混合索引子集。
在840处,可以在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
在一种实施方式中,所述新的混合索引子集中的每个混合索引可以包括所述新的SSA的SSAID。
在一种实施方式中,所述文档集合的原始混合索引集合可以被托管在原始数据中心上。所述原始数据中心可以是所述目标数据中心或原始区域中的不同数据中心。所述原始混合索引集合可以是通过原始SSA获得的。
所述原始混合索引集合中的每个混合索引可以不包括SSAID,或者可以包括所述原始SSA的SSAID。
所述方法800还可以包括:在获得所述新的混合索引子集之前,设置第一搜索限制,使得混合搜索排除使用所述新的混合索引子集。
所述获得所述新的混合索引子集还可以包括:确定是否已经获得了所述文档子集中的所有文档的混合索引。所述方法800还可以包括:响应于确定已经获得了所述文档子集中的所有文档的混合索引,删除所述第一搜索限制。
所述方法800还可以包括:在删除所述第一搜索限制时,设置第二搜索限制,使得混合搜索排除使用所述原始混合索引集合。
所述方法800还可以包括:确定对所述新的混合索引子集的验证是否通过;以及响应于确定所述验证通过,清除所述原始混合索引集合。
所述确定对所述新的混合索引子集的验证是否通过可以包括:利用所述新的混合索引子集来执行混合搜索;以及基于所述混合搜索的搜索结果来确定所述验证是否通过。
所述确定对所述新的混合索引子集的验证是否通过可以包括:确定所述新的混合索引子集中的混合索引条目的数量;以及基于所述数量来确定所述验证是否通过。
所述清除所述原始混合索引集合可以包括:停止通过所述原始SSA来更新所述文档集合的混合索引;和/或删除所述原始混合索引集合。
所述方法800还可以包括:在所述原始混合索引集合中的所有混合索引都已经被删除的情况下,删除所述第二搜索限制,和/或删除所述原始SSA。
在一种实施方式中,所述新的混合索引子集可以适用于云混合搜索、出站联合搜索、入站联合搜索以及复合的出站及入站联合搜索中至少之一。
应当理解,所述方法800还可以包括根据如上所述的本公开实施例的用于多区域混合索引管理的任何步骤/过程。
图9示出了根据本公开实施例的用于多区域混合索引管理的示例性系统900。
所述系统900可以包括:不同区域中的多个数据中心910-1、910-2、......、910-L(L>1),用于托管多个混合索引子集,其中,所述多个数据中心910-1、910-2、......、910-L中的目标数据中心可以在指定区域中,并且可以被配置用于托管文档子集的混合索引子集,所述文档子集包括文档集合中的部分或全部文档。所述系统900还可以包括:至少一个DMS 920,用于管理所述文档集合并将所述文档子集的所述混合索引子集提供给所述目标数据中心,其中,所述DMS 920可以包括用于获得所述文档子集的所述混合索引子集的SSA。此外,所述系统900还可以包括被配置用于根据如上所述的本公开实施例的多区域混合索引管理的任何其他组件。
图10示出了根据本公开实施例的用于多区域混合索引管理的示例性装置1000。
所述装置1000可以包括:指示接收模块1010,用于接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由DMS管理的文档集合中的部分或全部文档;SSA创建模块1020,用于在所述DMS上创建至少一个新的SSA;混合索引子集获得模块1030,用于通过所述新的SSA获得所述新的混合索引子集;以及混合索引子集托管模块1040,用于在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
在一种实施方式中,所述新的混合索引子集中的每个混合索引可以包括所述新的SSA的SSAID。
在一种实施方式中,所述文档集合的原始混合索引集合可以被托管在原始数据中心上。所述原始数据中心可以是所述目标数据中心或原始区域中的不同数据中心。所述原始混合索引集合可以是通过原始SSA获得的。
所述装置1000还可以包括:搜索限制设置模块,用于在所述混合索引子集获得模块获得所述新的混合索引子集之前设置第一搜索限制,使得混合搜索排除使用所述新的混合索引子集。
所述混合索引子集获得模块1030还可以被配置用于:确定是否已经获得了所述文档子集中的所有文档的混合索引。所述装置1000还可以包括搜索限制删除模块,用于响应于确定已经获得了所述文档子集中的所有文档的混合索引,删除所述第一搜索限制。
应当理解,所述装置1000还可以包括被配置用于根据如上所述的本公开实施例的多区域混合索引管理的任何其他模块。
本公开实施例提出了用于多区域混合索引管理的计算机程序产品,包括由至少一个处理器执行用于以下操作的计算机程序:接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由DMS管理的文档集合中的部分或全部文档;在所述DMS上创建至少一个新的SSA;通过所述新的SSA获得所述新的混合索引子集;以及在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。此外,还可以执行计算机程序以实现用于根据如上所述的本公开实施例的多区域混合索引管理的方法的任何其他步骤/过程。
本公开的实施例可以体现在非暂时性计算机可读介质中。非暂时性计算机可读介质可以包括指令,所述指令当被执行时使得一个或多个处理器执行根据如上所述的本公开实施例的用于多区域混合索引管理的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其他等同变换。此外,除非另有规定或从所述上下文中能够明确指向单数形式,否则在本说明书和所附的权利要求中所使用的冠词“一”和“一个”一般应解释为意指“一个”或者“一个或多个”。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑单元、分立硬件电路、以及被配置为执行在本公开中描述的各种功能的其他适合的处理组件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其他适合的平台所执行的软件。
软件应当被广泛地视为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(例如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部,例如高速缓存器或寄存器。
以上描述被提供用于使得本领域任何技术人员能够实践本文所描述的各个方面。对这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其他方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换都旨在被权利要求所覆盖。

Claims (20)

1.一种用于多区域混合索引管理的方法,包括:
接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由文档管理系统(DMS)管理的文档集合中的部分或全部文档;
在所述DMS上创建至少一个新的搜索服务应用(SSA);
通过所述新的SSA获得所述新的混合索引子集;以及
在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
2.根据权利要求1所述的方法,其中,所述新的混合索引子集中的每个混合索引包括所述新的SSA的SSA标识符(SSAID)。
3.根据权利要求1所述的方法,其中,所述文档集合的原始混合索引集合被托管在原始数据中心上,所述原始数据中心是所述目标数据中心或原始区域中的不同数据中心,并且所述原始混合索引集合是通过原始SSA获得的。
4.根据权利要求3所述的方法,其中,所述原始混合索引集合中的每个混合索引不包括SSAID或者包括所述原始SSA的SSAID。
5.根据权利要求3所述的方法,还包括:
在获得所述新的混合索引子集之前,设置第一搜索限制,使得混合搜索排除使用所述新的混合索引子集。
6.根据权利要求5所述的方法,其中:
所述获得所述新的混合索引子集还包括:确定是否已经获得了所述文档子集中的所有文档的混合索引,并且
所述方法还包括:响应于确定已经获得了所述文档子集中的所有文档的混合索引,删除所述第一搜索限制。
7.根据权利要求6所述的方法,还包括:
在删除所述第一搜索限制时,设置第二搜索限制,使得混合搜索排除使用所述原始混合索引集合。
8.根据权利要求7所述的方法,还包括:
确定对所述新的混合索引子集的验证是否通过;以及
响应于确定所述验证通过,清除所述原始混合索引集合。
9.根据权利要求8所述的方法,其中,所述确定对所述新的混合索引子集的验证是否通过包括:
利用所述新的混合索引子集来执行混合搜索;以及
基于所述混合搜索的搜索结果来确定所述验证是否通过。
10.根据权利要求8所述的方法,其中,所述确定对所述新的混合索引子集的验证是否通过包括:
确定所述新的混合索引子集中的混合索引条目的数量;以及
基于所述数量来确定所述验证是否通过。
11.根据权利要求8所述的方法,其中,所述清除所述原始混合索引集合包括:
停止通过所述原始SSA更新所述文档集合的混合索引;和/或
删除所述原始混合索引集合。
12.根据权利要求11所述的方法,还包括:
在所述原始混合索引集合中的所有混合索引都已经被删除的情况下,
删除所述第二搜索限制,和/或
删除所述原始SSA。
13.根据权利要求1所述的方法,其中,所述新的混合索引子集适用于云混合搜索、出站联合搜索、入站联合搜索以及复合的出站及入站联合搜索中至少之一。
14.一种用于多区域混合索引管理的系统,包括:
不同区域中的多个数据中心,用于托管多个混合索引子集,其中,所述多个数据中心中的目标数据中心在指定区域中,并且被配置用于托管文档子集的混合索引子集,所述文档子集包括文档集合中的部分或全部文档;以及
至少一个文档管理系统(DMS),用于管理所述文档集合并将所述文档子集的所述混合索引子集提供给所述目标数据中心,其中,所述DMS包括用于获得所述文档子集的所述混合索引子集的搜索服务应用(SSA)。
15.一种用于多区域混合索引管理的装置,包括:
指示接收模块,用于接收用于在至少一个指定区域中建立至少一个新的混合索引子集的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由文档管理系统(DMS)管理的文档集合中的部分或全部文档;
搜索服务应用(SSA)创建模块,用于在所述DMS上创建至少一个新的SSA;
混合索引子集获得模块,用于通过所述新的SSA获得所述新的混合索引子集;以及
混合索引子集托管模块,用于在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
16.根据权利要求15所述的装置,其中,所述新的混合索引子集中的每个混合索引包括所述新的SSA的SSA标识符(SSAID)。
17.根据权利要求15所述的装置,其中,所述文档集合的原始混合索引集合被托管在原始数据中心上,所述原始数据中心是所述目标数据中心或原始区域中的不同数据中心,并且所述原始混合索引集合是通过原始SSA获得的。
18.根据权利要求17所述的装置,还包括:
搜索限制设置模块,用于在所述混合索引子集获得模块获得所述新的混合索引子集之前设置第一搜索限制,使得混合搜索排除使用所述新的混合索引子集。
19.根据权利要求18所述的装置,其中:
所述混合索引子集获得模块还被配置用于:确定是否已经获得了所述文档子集中的所有文档的混合索引,并且
所述装置还包括搜索限制删除模块,用于响应于确定已经获得了所述文档子集中的所有文档的混合索引,删除所述第一搜索限制。
20.一种用于多区域混合索引管理的计算机程序产品,包括由至少一个处理器执行用于以下操作的计算机程序:
接收用于在至少一个指定区域中建立至少一个新的混合索引集合的指示,每个新的混合索引子集对应于一个文档子集,所述文档子集包括由文档管理系统(DMS)管理的文档集合中的部分或全部文档;
在所述DMS上创建至少一个新的搜索服务应用(SSA);
通过所述新的SSA获得所述新的混合索引子集;以及
在所述指定区域中的至少一个目标数据中心上托管所述新的混合索引子集。
CN202180070162.0A 2021-06-03 2021-06-03 多区域混合索引管理 Pending CN116368485A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/098142 WO2022252187A1 (en) 2021-06-03 2021-06-03 Multi-region hybrid index management

Publications (1)

Publication Number Publication Date
CN116368485A true CN116368485A (zh) 2023-06-30

Family

ID=76796862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070162.0A Pending CN116368485A (zh) 2021-06-03 2021-06-03 多区域混合索引管理

Country Status (2)

Country Link
CN (1) CN116368485A (zh)
WO (1) WO2022252187A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110137886A1 (en) * 2009-12-08 2011-06-09 Microsoft Corporation Data-Centric Search Engine Architecture
CN102164186B (zh) * 2011-05-31 2013-10-30 互动在线(北京)科技有限公司 一种实现云搜索服务的方法及系统
US10031978B1 (en) * 2012-06-29 2018-07-24 Open Text Corporation Methods and systems for providing a search service application

Also Published As

Publication number Publication date
WO2022252187A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
US10565201B2 (en) Query processing management in a database management system
US11093461B2 (en) Method for computing distinct values in analytical databases
US9069448B2 (en) Filtering objects in a multi-tenant environment
US8639698B1 (en) Multi-language document clustering
US11303651B1 (en) Security appliance to monitor networked computing environment
CN111966866A (zh) 一种数据资产管理的方法和装置
US10565176B2 (en) Processing large data tables
CN105426375A (zh) 一种关系网络的计算方法及装置
US9703832B2 (en) Method, system and computer program to provide fares detection from rules attributes
US9176964B1 (en) Scalable deduplication system and method
US10860697B2 (en) Private content in search engine results
CN115238247A (zh) 基于零信任数据访问控制系统的数据处理方法
CN109254791A (zh) 开发数据的管理方法、计算机可读存储介质和终端设备
CN113220588A (zh) 一种数据处理的自动化测试方法、装置、设备及存储介质
CN116368485A (zh) 多区域混合索引管理
CN116303390A (zh) 一种不动产登记数据深度治理方法、装置、终端及介质
CN111352922B (zh) Bi工具中多数据表的数据权限继承方法
US20160196331A1 (en) Reconstitution order of entity evaluations
CN105574195B (zh) 判断数据库是否应下线回收的方法及装置
CN111552956A (zh) 一种用于后台管理的角色权限控制方法及装置
CN111352985A (zh) 一种基于计算机系统的数据服务平台、方法、存储介质
CN116541377B (zh) 任务的物化视图的处理方法、系统和电子设备
US7987470B1 (en) Converting heavyweight objects to lightwight objects
Kopsachilis et al. GeoLOD: Spatial Linked Data Catalog and Recommender. Big Data Cogn. Comput. 2021, 5, 17
Zhou et al. A method for generating fixing rules from constant conditional functional dependencies

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