搜索文件的制作方法

文档序号:6442448阅读:244来源:国知局
专利名称:搜索文件的制作方法
搜索文件
背景技术
计算机可用于存储丰富的信息。例如,该信息可被包括在文档、电子表格、图像、数据库、电子邮件、其他内容等中。一些用户使用分层文件夹/文件系统来组织他们在存储设备上的数据,以便他们可在以后更好地找到数据。其他用户将他们的许多数据放置在相对少的目录中。在任一情况下,随着时间流逝,增加了想起数据被存储在何处的难度。此处要求的主题不限于解决任何劣势或仅在诸如上述的那些环境中操作的实施例。相反,仅提供该背景技术以例示可实践此处描述的一些实施例的一个示例技术领域。

发明内容
简要地,此处描述的主题的各个方面涉及搜索文件。在各个方面,搜索引擎不仅能搜索当前文件,而且能搜索满足查询的文件的已删除的和先前的版本。搜索引擎可维护便于搜索的索引。此外,搜索引擎还不仅可确定满足查询的文件,而且可确定哪个版本(多个) 的文件满足该查询。提出本发明内容来简要地标识以下在具体实施方式
中进一步描述的主题的一些方面。本发明内容既不意图标识所要求主题的关键或重要特征,也不意图被用于限制所要求主题的范围。除非上下文另行明确指示,短语“此处描述的主题”指的是在具体实施方式
中描述的主题。术语“方面”将被解读为“至少一个方面”。标识在具体实施方式
中描述的本主题的方面不意图标识所要求主题的关键或重要特征。上述方面和此处描述的本主题的其他方面通过例子的方式来例示且并不限于附图中,在附图中,类似参考数字指示类似的单元,且其中。


图1是表示此处描述的本主题的各方面可并入其中的示例通用计算环境的框图; 图2是一般地表示根据此处描述的本主题的各方面的系统的框图3是例示了根据此处描述的本主题的各方面、其中在搜索中可能错过文件的一些版本的示例索引的一部分;
图4是例示了根据此处描述的本主题的各方面、可被用于更穷尽搜索的示例索引的一部分的框图5是一般地表示根据此处描述的本主题的各方面、可在更新索引时发生的示例动作的流程图;以及
图6是一般地表示根据此处描述的本主题的各方面、可在响应于查询时发生的示例动作的流程图。
具体实施例方式定义如此处所使用的,术语“包括”及其变形将被解读为意指“包括但不限于”的开放式术语。术语“或”将被解读为“和/或”,除非上下文另行明确指示。术语“基于”将被解读为 “至少部分地基于”。术语“一个实施例”和“实施例”将被解读为“至少一个实施例”。术语 “另一实施例”将被解读为“至少一个其他实施例”。如此处所使用的,诸如“一”、“一个”和“该”的术语包含一个或多个指示的项目或动作。具体地,在权利要求中,对于项目的引用一般地意指存在至少一个这样的项目,并且对于动作的引用意指执行动作的至少一个实例。此处有时使用术语“第一”、“第二”、“第三”等。在权利要求中使用这些术语不是意图暗示排序而是用于标识目的。例如,短语“第一版本”和“第二版本”不必意指第一版本就是第一个版本或在第二版本之前被创建、或甚至第一版本在第二版本之前被要求或操作。相反,这些短语被用于标识不同的版本。标题仅为方便的目的;可在其标题指示给定话题的章节之外发现关于该话题的信肩、O以下可(显式和隐式的)包括其他定义。实例操作环境
图1例示了适合的计算系统环境100的例子,可在其上实现此处描述的本主题的各方面。计算系统环境100仅是适合的计算环境的一个例子,且不意图暗示对于此处描述的主题的各方面的使用或功能范围的任何限制。计算环境100也不应被解释为具有涉及在示例操作环境100中例示的任何一个组件或组件组合的任何依赖性或要求。此处描述的本主题的各方面可用大量的其他通用或专用计算系统环境或配置来操作。适合与此处描述的本主题的各方面一起使用的公知计算系统、环境或配置的例子包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微控制器的系统、 机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶、媒体中心或其他电器的电器、汽车嵌入或附连计算设备、其他移动设备、包括任何以上系统或设备的分布式计算环境等。此处描述的本主题的各方面可在由计算机执行的诸如程序模块之类的计算机可执行指令的一般环境中描述。一般地,程序模块包括例程、程序、对象、组件、数据结构等,其执行具体的任务或实现具体的抽象数据类型。此处描述的本主题的各方面还可在分布式计算环境中实现,其中由通过通信网络链接的远程处理设备执行任务。在分布式计算环境中, 程序模块可位于包括存储器存储设备的本地和远程计算存储介质二者中。参照图1,用于实现此处描述的本主题的各方面的示例系统包括以计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦连至处理单元120的系统总线121。系统总线121可以是一些总线结构类型中的任何一种,其包括存储器总线或存储器控制器、外设总线和使用各种总线体系架构的任何一种的本地总线。通过例子的方式而非限制,这样的体系架构包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强的ISA (EISA)总线、视频电子标准协会(VESA)本地总线、也被称为夹层总线的外设组件互连(PCI)总线、外设组件互连扩展(PCI-X)总线、高级图形端口(AGP)和 PCI 高速(PCIe)。
计算机110典型地包括各种计算机可读介质。计算机可读介质可以是可由计算机 110访问的任何可得的介质,并包括易失性和非易失性介质,以及可移除和不可可移除介质。通过例子的方式而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的、用于存储诸如计算机可读指令、 数据结构、程序模块或其他数据之类的信息的易失性和非易失性、可移除和不可移除介质。 计算机存储介质包括RAM、R0M、EEPR0M、闪存或其他存储技术、CD-ROM、数字多用盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备,或可被用于存储期望的信息并可由计算机110访问的任何其他介质。通信介质典型地在调制的数据信号(诸如载波或其他传输机制)中体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息递送介质。术语“调制的数据信号”意指按照在信号中编码信息的方式设置或改变其一个或多个特性的信号。通过例子的方式而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,和诸如声学、RFjl 外的和其他无线介质的无线介质。以上任何的组合也应被包括在计算机可读介质的范围内。系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM) 131和随机存取存储器(RAM) 132。包含帮助在计算机110内的元件之间传送信息(诸如在启动期间)的基本例程的基本输入/输出系统133 (BIOS)典型地被存储在R0M131中。RAM 132典型地包含由处理单元120立即访问和/或当前操作的数据和/ 或程序模块。通过例子的方式而非限制,图1例示了操作系统134、应用程序135、其他程序模块136和程序数据137。计算机110还包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅通过例子的方式,图1例示了从不可移除、非易失性磁介质读取或写入其中的硬盘驱动器 141,从可移除、非易失性磁盘152读取或写入其中的磁盘驱动器151,以及从诸如⑶ROM或其他光学介质之类的可移除、非易失性光盘156读取或写入其中的光盘驱动器155。可在示例操作环境中使用的其他可移除/不可移除、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多用盘、其它光盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器141可通过接口 140连接至系统总线121,磁盘驱动器151和光盘驱动器155可以由诸如接口 150 之类的、用于可移除非易失性存储器的接口而连接至系统总线121。以上讨论和图1中例示的驱动器及其相关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图1中,硬盘驱动器 141被例示为存储操作系统144、应用程序145、其他程序模块146和程序数据147。注意, 这些组件与操作系统134、应用程序135、其他程序模块136和程序数据137可以是相同的或不同的。此处给予操作系统144、应用程序145、其他程序模块146和程序数据147的不同数字以至少例示它们是不同的副本。用户可通过诸如键盘162和指示设备161 (通常是指鼠标、跟踪球或触摸板)之类的输入设备在计算机110中键入命令和信息。其他输入设备(未示出)可包括麦克风、控制杆、游戏垫、圆盘式卫星天线、扫描仪、触摸感应屏、书写板等。经常通过耦连至系统总线的用户输入接口 160将这些和其他输入设备连接至处理单元120,但可能由诸如并行端口、游戏端口或通用串行总线(USB)的其他接口或总线结构来连接。
还可经由诸如视频接口 190之类的接口将监视器191或其他类型的显示设备连接至系统总线121。除监视器之外,计算机还可包括诸如扬声器197和打印机196之类、可通过输出外设接口 195来连接的其他外设输出设备。计算机110可使用与诸如远程计算机180之类的一个或多个远程计算机的逻辑连接在网络环境中操作。虽然图1中仅例示了存储器存储设备181,但是远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他通常网络节点,并典型地包括上述关于计算机110描述的许多或所有元件。图1中描绘的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但还可包括其他网络。这样的网络环境是办公室、企业范围的计算机网络、内联网和因特网中的普通事物。当在LAN网络环境中使用时,通过网络接口或适配器170将计算机110连接至LAN 171。当在WAN网络环境中使用时,计算机110可包括用于通过诸如因特网之类的WAN 173 建立通信的调制解调器172或其他手段。可经由用户输入接口 160或其他适当的机构将调制解调器172 (其可以是内部或外部的)连接至系统总线121。在网络环境中,可将相对于计算机110描绘的程序模块或其部分存储在远程存储器存储设备中。通过例子的方式而非限制,图1例示了驻留在存储器设备181上的远程应用程序185。将预想到,示出的网络连接是示例,并可使用在计算机之间建立通信链接的其他手段。查找数据
如前所述,随着时间过去,想起数据被存储在何处变得更加困难。图2是一般地表示根据此处描述的本主题的各方面的系统的框图。如例示,系统200包括搜索引擎205、备份存储设备210、当前存储设备215,并还可包括其他组件(未示出)。逻辑上,搜索引擎205搜索存储在备份存储设备210和当前存储设备215中的各文件,以生成搜索结果220。搜索引擎205可以位于一个或多个计算设备上。例如,这样的设备可包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、 可编程消费电子产品、网络PC、小型计算机、大型计算机、蜂窝电话、个人数字助理(PDA)、 游戏设备、打印机、包括机顶、媒体中心或其他电器的电器、汽车嵌入或附连的计算设备、其他移动设备、包括任何以上系统或设备的分布式计算环境等。可被配置为充当搜索引擎205 的示例设备包括图1中的计算机110。备份存储设备210和当前存储设备215 (以下有时统称为文件存储设备)可包括能够存储数据的任何存储介质。术语数据将被宽泛地解读以包括可以由一个或多个计算机存储元件表示的任何事物。逻辑上,数据可被表示为在易失性或非易失性存储器中的一系列的1和0。在具有非二进制存储介质的计算机中,可按照存储介质的容量表示数据。数据可被组织成数据结构的不同类型,其包括诸如数字、字母等简单的数据类型,分层的、链接的或其他相关的数据类型,包括多个其他数据结构或简单数据类型的数据结构等。数据的一些例子包括信息、程序代码、程序状态、程序数据、其他数据等。可使用结合图1描述的计算机存储介质实现文件存储设备。文件存储设备可以是内部的、外部的,或包括位于提供搜索引擎205的设备内部和外部二者的组件。文件存储设备可包括相同或不同类型的一个或多个物理设备。诸如提供搜索引擎 205的计算机的设备可依靠作为默认存储设备的当前存储设备215来存储诸如文件和目录之类的文件系统对象或其他数据(以下有时被称为文件)。来自当前存储设备215的文件可被备份到备份存储设备210上。例如,当前存储设备215可包括当前正由计算机使用的文件。当添加文件时,当前存储设备215可包括所添加的文件。当文件被删除时,可从当前存储设备215移除该文件。另一方面,备份存储设备210可包括当前包含在当前存储设备215上的文件的先前版本,以及已从当前存储设备215删除的文件的版本。响应于查询,搜索引擎205可逻辑地搜索当前存储设备215的文件以及备份存储设备210的文件。使用了术语“逻辑地”,因为可以有许多方式来搜索备份存储设备210和当前存储设备215的内容。例如,在一个实施例中,搜索引擎205可响应于查询,而搜索当前存储设备215的每个文件以及备份存储设备210的每个文件。如果文件满足查询的条件, 则可在搜索结果220中包括文件的指示符(例如,文件名和可能的版本)。作为另一例子,搜索引擎205可通过搜索索引225来搜索备份存储设备210和当前存储设备215。索引225可包括被映射至当前存储设备215和备份存储设备210中的一个或多个文件的关键字集。当当前存储设备215中的文件被更新时,可从索引225中删除对文件的旧索引,并索引文件的新内容以及将其放置在索引225中。当文件被删除时,可在备份存储设备210上维护该文件的先前版本的副本。在一个实施例中,仅有备份存储设备210中的已删除文件的最新版本被索引到索引225中。在另一实施例中,已删除文件的每个已删除版本被索引到索引225中。例如,如果文件被删除、 重新创建并再次被删除,则可将已删除的版本索引到索引225中。在该例子中,当搜索引擎 205接收查询时,搜索引擎可通过搜索索引225来搜索当前存在于当前存储设备215上的所有文件以及已从当前存储设备215删除的文件的最新版本。以该方式来搜索可产生少于将会满足查询的文件的所有版本(如结合图3更详细地描述)。例如,如果用户从文件删除字并保存文件,且如果需要已删除的字以满足查询,则即使文件的先前版本会已满足了查询,查询也将不会返回该文件。此处有时使用短语“满足查询”等。满足查询意指满足查询的条件。例如,查询可包括条件的列表。例如,用户可能想要具有名字包括“简历”的所有文件的列表。在该情况下,用户可发出查询,其包括文件名包括“简历”的条件。在其名字中包括“简历”名字的文件的所有版本都满足该查询。图3是例示了根据此处描述的本主题的各方面、在搜索中可能错过文件的一些版本的示例索引的一部分的框图。转向图3,在时间301,文件305包括字狗和猫。索引可具有引用文件305的令牌狗和猫。在时间302,文件305包括字狗和猴。在该时间,索引可具有引用文件305的令牌狗和猴。在时间303,文件305被删除。在该时间,索引可仍包括令牌狗和猴(其可指示文件305的已删除版本)。使用以上技术,即使在时间301处文件305 中包括猫,在时间303处,针对包括字猫的文件的搜索也不会产生文件305。在一些实现方式中,特别地对于在搜索文件中的第一趟(pass),以上行为可以是可接受的。在其他实现方式中,可能需要对更旧和已删除版本的更穷尽搜索。图4是例示了根据此处描述的本主题的各方面、可用于更穷尽的搜索的示例索引的一部分的框图。在该例子中,当在时间402处,不是从索引中删除到文件的先前引用,而是修改文件405,对于文件的任何旧令牌(例如,猫)的所有引用都被保持,且用于在文件中发现的任何新字(例如,猴)的令牌被添加至索引中。当在时间403删除文件时,维护索引中从所有先前令牌到该文件的引用。其允许搜索曾包含在文件中的关键字。数字405所引用的框可包括表示文件版本的对象。这个对象可包括数据结构,其包括例如文件的标识符,诸如如下更详细描述的那样、使用类别来查找文件版本的名字。转到图2,为了实现这个更穷尽的搜索能力,在一个实现方式中,当文件首先被备份到备份存储设备210时,文件被索引并被添加到索引数据结构。当文件的另一版本被备份到备份存储设备210时,在索引225中维护文件的所有旧索引,同时在将用于包含在文件中的新字的任何新令牌和引用添加至索引225中。当文件被删除时,在一个实现方式中,在从当前存储设备215删除文件之前,将就在删除之前存在的文件复制到备份存储设备210,且如上所述如同文件已改变那样进行索引。该索引捕获在最近的版本存储在备份存储设备上之后但在文件被删除之前,可能已被添加到文件的任何新令牌。此后,可从当前存储设备215中删除文件。该实现方式可被用于搜索直到文件被删除时存在于该文件的任何备份版本中的所有关键字。在另一实现方式中,当文件被删除时,在删除之前,文件未被复制到备份存储设备 210,但维护从令牌至备份存储设备210中的文件的最后版本的引用且未进行删除。该实现方式可能失去针对发生在备份到备份存储设备210的最后版本和就在删除之前存在于当前存储设备215上的版本之间的改变的搜索能力。以上更穷尽的搜索机制可指示文件的至少一个版本满足搜索查询,而无需指示哪个具体的版本(多个)满足搜索查询。例如,当针对对于文件进行的改变而把令牌添加至索引时,令牌可引用表示文件版本的对象。例如,该对象可包括数据结构,其包括诸如标识文件但未直接标识文件的具体版本的名字之类的标识符。为了确定满足搜索查询的具体版本 (多个),可在当前存储设备215中搜索文件的当前版本,并在备份存储设备210中搜索文件的先前版本。然后,可定位并返回满足查询的文件的特定版本。题为“FILESYSTEM BACKUP USING CHANGE JOURNAL”的美国专利申请(2010 年 12 月3日提交,代理人案号No. 330624. 01,申请号为12/959,401)公开了可被用于分类文件版本并基于文件名获得版本的一个示例机制,该申请转让给本专利申请的受让人并通过引用合并与此。基于此处的教导,本领域的那些技术人员可意识到可利用用于实现该能力的其他机制而无需背离此处描述的本主题的各方面的精神或范围。在一个实施例中,根据事件,搜索引擎205可更新索引225,这些事件包括1)当前存储设备215中的文件被改变;或2)文件被复制到备份存储设备。在第一种情况下,可删除不指示其他文件的令牌和在索引中引用当前存储设备215中已改变的文件的引用,并可基于文件的新内容创建新令牌和引用。在第二种情况下,可保持所有的旧令牌和引用,并针对从文件的最后版本以来为新的内容添加一个或多个单元。在这个实现方式中,搜索引擎 205可仅使用索引225来查找文件(或表示文件的多个版本的对象)以满足查询。一旦文件已被查找到,可考虑诸如在上述美国专利申请中公开的类别之类的附加信息,来确定文件的何种版本满足该查询。在备份存储设备210上创建文件的备份版本的数据保护引擎(未示出)可被配置为仅从当前存储设备215复制受保护的文件。受保护的文件可被单独指定和/或是被指定为受保护的目录的后代(descendant)的文件。例如,文件c: \mydata. txt可以被单独指定为受保护的,且目录c \mydata可以被指定为受保护的。在后一种情况中,存在于c \mydata 或它的子目录或他们的子目录中的任何一个中的所有文件都可以受保护。在这个情况下,当前存储设备215存储文件的当前版本,备份存储设备210存储当前存储设备215的受保护的文件的先前版本以及已从当前存储设备215删除的受保护的文件的版本。此外,搜索引擎205如何基于已改变的文件来更新索引225可以通过已改变的文件是受保护的文件还是不受保护的文件确定。例如,响应于不受保护的文件已改变的指示, 搜索引擎205可执行动作,包括
1、从索引225删除对于不受保护的文件的先前引用。该先前引用存在于不受保护文件被改变之前;
2、从索引225删除仅引用不受保护的文件的先前令牌。换句话说,如果令牌仅引用被改变的不受保护文件,则可删除令牌;
3、在不受保护的文件被改变之后,将针对不受保护文件中查找到的每个令牌将新令牌添加到索引225中;以及
4、在不受保护的文件被改变之后,将从索引中的令牌至不受保护文件的引用添加到索引225中,其中相应的令牌存在于不受保护的文件中。例如,对于在文件中查找到的每个令牌,对在索引225中的相应令牌进行更新以引用该文件。如果文件是被复制到备份存储设备的受保护文件,则搜索引擎将执行动作,包括
1、维护从索引中的令牌至表示文件版本的对象的任何引用。换句话说,如先前结合图 4所述,不删除对于文件的引用;
2、将针对文件新版本中查找到的每个令牌,将新令牌添加到索引225。例如,如果文件包括当前未在索引225中找到的令牌,则这些令牌可被添加至索引225中;以及
3、将从新令牌至表示文件版本的对象的引用添加到索引225中。例如,这指的是针对文件中找到的每个新令牌,添加对该文件的附加引用。当从当前存储设备删除受保护文件时,搜索引擎205可维护该索引,以便保持从索引中的令牌至表示已删除文件的对象的任何索引。可以多级(stage)执行搜索。在第一级,搜索引擎205可搜索当前存储设备以查找满足查询的当前版本,并搜索备份存储设备以发现满足查询的已删除文件。然后,如果期望更穷尽的搜索,则搜索引擎205可实施包括受保护文件先前版本的搜索(例如,通过创建和搜索包括受保护文件的所有令牌的索引)。图5-6是流程图,其一般地表示根据此处描述的本主题的各方面而可发生的示例动作。为了解释的简明性起见,将结合图5-6描述的方法描绘或描述为一系列动作。将理解并预想到,此处描述的本主题的各方面不由例示的动作和/或由动作的次序所限制。在一个实施例中,动作按照以下描述的次序发生。然而,在其他实施例中,动作可并行、以另一次序和/或与此处未呈现和描述的其他动作一起发生。此外,不要求所有例示的动作以实现根据此处描述的本主题的各方面的方法。另外,那些本领域技术人员将理解和预想到,方法可被替代地经由(via)状态图表示为一系列不相关的状态或表示为事件。图5是一般地表示根据此处描述的本主题的各方面、可在更新索引时发生的示例动作的流程图。转到图5,在框505,动作开始。在框510,接收文件已改变的指示。例如,参考图2,搜索引擎205可接收当前存储设备215上的文件已改变的指示。例如,可从通过扫描目录以基于属性或内容等查看文件是否已改变来监视文件改变的组件接收该指示。在框515,作出关于文件是否在受保护的命名空间中的确定。例如,受保护的命名空间包括路径(例如,c \mydata),其指示是该路径后代的任何文件要被备份到备份存储设备。例如,参照图2,搜索引擎可参考数据结构(未示出)以检查文件是否在受保护的命名空间中。如果文件在受保护的命名空间中,则动作在框520处继续;否则,动作在框525处继续。在框520,针对包括在文件中的新令牌,将新引用添加到索引中。另外,在索引中保持对于文件的先前引用。这允许搜索确定文件的更旧版本是否满足查询。保持对于文件的先前引用的一个示例方式包括,如果文件在被改变之前和之后包括该令牌,则覆写 (overwrite)从索引中的令牌至该文件的每个先前引用。例如,参照图2,搜索引擎205可将针对包括在新文件中的新令牌而将对受保护文件的新引用添加到索引225中。在框525,删除对于文件的引用(如有的话),且文件被重新索引以在索引中添加对文件的引用。例如,参照图2,搜索引擎205可删除对于不受保护文件的旧引用,并添加对于该文件的新引用以考虑对于文件的改变。重新索引不受保护文件以在索引中添加对于文件的引用的一个示例方式包括,将包括在文件中的但还不在索引中的任何新令牌添加到索引中,并添加来自包括在索引中并也包括在文件中的令牌的引用。在框530,可执行其他动作(如有的话)。例如,如果接收文件已被删除的指示,则搜索引擎可在索引中维护(或重新索引)任何现存的、从令牌到表示存在于备份存储设备的文件的一个或多个版本的对象的引用。作为另一例子,可在搜索引擎处接收查询。作为响应,搜索引擎可搜索索引225以查找满足查询的文件集合。集合可包括来自当前存储设备和/或备份存储设备的一个或多个文件。另外,如果备份存储设备上的备份文件满足查询,则搜索引擎还可搜索备份文件的版本以发现满足该查询的至少一个版本。然后,搜索引擎可提供满足查询的至少一个版本的指示(例如,诸如集合之类的数据结构)。图6是一般地表示根据此处描述的本主题的各方面、可在响应于查询时发生的示例动作的流程图。如前所述,结合各个框描述的动作可并行或同时进行。例如,搜索当前存储设备可与搜索备份存储设备(例如,如果经由索引进行搜索)并行或同时进行。转向图6,在框605,动作开始。在框610,接收搜索满足查询的文件的请求。例如, 参照图2,搜索引擎205可接收满足查询的请求。在框615,在当前存储设备中搜索满足查询的当前文件。例如,参照图2,搜索引擎 205可搜索当前存储设备215以查找满足查询的当前文件。在框620,在备份存储设备中搜索也满足查询的、已从当前存储设备删除的文件。 例如,参照图2,搜索引擎可搜索备份存储设备210以查找满足查询的文件。在框625,可执行其他动作(如有的话)。例如,搜索引擎可接收当前存储设备上的不受保护文件已改变的指示,并且作为响应,可重新索引文件。如前所述,这个重新索引可包括
1、将包括在文件中的但尚未在索引中的任何新令牌添加到索引中,以及
2、添加从包括在索引中的令牌至文件(令牌也包括在该文件中)的引用。作为另一例子,搜索引擎还可在备份存储设备中搜索满足查询的文件的版本,以标识满足查询的特定版本。搜索备份存储设备可包括搜索索引,该索引针对在文件的任何版本中找到的每个令牌,包括对表示文件版本的对象的单个索引。作为其他动作的另一例子,可接收文件已被或将要被复制到备份存储设备的指示。作为响应,在维护索引中对文件的所有先前引用的同时,搜索引擎可更新索引针对包括在文件中的每个新令牌来引用文件。从前述具体实施方式
可以看出,已描述了涉及搜索的方面。尽管此处描述的主题的各方面易经历各种修改和替代构造,但在附图中示出并已在上文详细描述了其中某些例示实施例。然而,应理解,这不意图将要求的主题的各方面限制至公开的特定形式,而是相反,意图是将覆盖落入此处描述的主题的各个方面的精神和范围内的所有修改、替代构造和等同物。
权利要求
1.一种至少部分地由计算机实现的方法,所述方法包括获得(510)文件已改变的指示;检查(530)所述文件是否在受保护的命名空间中,在受保护的命名空间中的文件被指定为备份到备份存储设备;如果所述文件在受保护的命名空间中,则将所述文件中包括的任何新令牌添加(520) 到索引,将从新令牌至所述文件的引用添加到所述索引中,并在所述索引中保持先前对所述文件的引用;以及如果所述文件不在受保护的命名空间中,则删除(525)先前在所述索引中存在的、如果有的对所述文件的各引用,并重新索引所述文件,以在所述索引中添加对所述文件的引用。
2.如权利要求1所述的方法,其中获得文件已改变的指示包括接收所述文件已被或将要被复制到所述备份存储设备的指示,并且其中保持先前对所述文件的引用包括如果所述文件在被改变之前和之后包括令牌,则覆写从所述索引中的令牌至所述文件的先前引用。
3.一种具有计算机可执行指令的计算机存储介质,当所述指令被执行时执行动作,包括接收(610)搜索满足查询的文件的请求;以及在当前存储设备中搜索(615)满足所述查询的当前文件;以及在备份存储设备搜索(620)已从所述当前存储设备删除的、也满足所述查询的已删除文件。
4.如权利要求3所述的计算机存储介质,还包括接收在所述当前存储设备上的文件已改变的指示,并作为响应,从所述索引中删除对所述文件的引用,并重新索引所述文件以将对所述文件的引用添加到所述索引中。
5.如权利要求4所述的计算机存储介质,其中重新索引所述文件以将对所述文件的引用添加到所述索引中包括将包括在所述文件中的但尚未在所述索引中的任何新令牌添加到所述索引中,以及添加从所述索引中的令牌到所述文件的引用,其中所述令牌也被包括在所述文件中。
6.如权利要求3所述的计算机存储介质,还包括接收文件已被或将要被复制到所述备份存储设备的指示,并作为响应,更新索引以针对所述文件中包括的每个新令牌引用所述文件,同时维护在所述索引中对所述文件的所有先前引用。
7.一种计算环境中的系统,包括当前存储设备(215),可操作来存储文件的当前版本;备份存储设备(210),可操作来存储所述当前存储设备的受保护文件的先前版本以及已从所述当前存储设备删除的受保护文件的版本;以及搜索引擎(205),可操作来搜索所述当前存储设备以查找满足查询的当前版本,并搜索所述备份存储设备以查找满足所述查询的已删除文件,所述已删除文件先前已从所述当前存储设备中删除了。
8.如权利要求7所述的系统,其中所述搜索引擎可操作来搜索所述当前存储设备以查找满足查询的当前版本,以及搜索所述备份存储设备以查找满足所述查询的已删除文件包括所述搜索引擎可操作来搜索索引。
9.如权利要求8所述的系统,其中所述搜索引擎还可操作来通过执行动作以响应于接收到已改变了所述当前存储设备上的不受保护的文件的指示而更新所述索引,所述动作包括从所述索引中删除对于所述不受保护的文件的先前引用,所述先前引用存在于所述不受保护的文件被改变之前;从所述索引中删除仅引用所述不受保护的文件的先前令牌,所述先前令牌存在于所述不受保护的文件被改变之前;在所述不受保护的文件被改变之后,将为所述不受保护文件中找到的每个令牌将新令牌添加到所述索引中;将从所述索引的令牌至所述不受保护文件的引用添加到所述索引中,其中在所述不受保护的文件被改变之后,相应的令牌存在于所述不受保护文件中。
10.如权利要求8所述的系统,其中所述搜索引擎还可操作来通过执行动作以响应于文件的新版本被复制到所述备份存储设备而更新所述索引,所述动作包括维护从所述索引中的令牌至表示所述文件的各版本的对象的任何引用,所述引用至少存在于所述文件被复制到所述备份存储设备之前;针对所述文件的新版本中找到的每个令牌,将新令牌添加到所述索引中;以及将从所述新令牌到表示所述文件的各版本的对象的引用添加到所述索引中。
全文摘要
此处描述的本主题的各个方面涉及搜索文件。在各个方面,搜索引擎不仅能搜索当前文件,而且能搜索满足查询的文件的已删除和先前的版本。搜索引擎可维护便于搜索的索引。此外,搜索引擎还不仅可确定满足查询的文件,而且可确定哪个(哪些)文件版本满足该查询。
文档编号G06F17/30GK102567489SQ20111043233
公开日2012年7月11日 申请日期2011年12月21日 优先权日2010年12月21日
发明者A.A.多施, B.W.拉奇博尔斯基, J-L.庞 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1