用于文档索引的非频繁字索引的制作方法

文档序号:6513889阅读:162来源:国知局
专利名称:用于文档索引的非频繁字索引的制作方法
技术领域
本发明通常涉及用于因特网搜索引擎的文档索引领域,特别涉及一种对文档中不经常出现的字进行特别索引的索引方案。
背景技术
典型的文档索引系统具有以逆置内容索引形式安排的字出现数据,所述内容索引按文档进行分隔。所述数据分布在多个索引存储专用计算机系统上,每个计算机系统对经索引的文档总集合中的一个子集合进行处理。这就允许将一个字搜索查询立刻呈现给许多计算机系统,而每个计算机系统相对于该计算机系统所处理的文档来处理所述查询。
按文档所分隔的逆置字位置索引通常比按字分隔的索引更加有效。这是因为当需要在多个字上排列命中率(rank hits)时,按字分隔会变得代价昂贵。在计算机系统之间有大量信息进行交换,而字就会在许多地方出现。因此,典型的文档索引系统按文档进行分隔。

发明内容
一种用于非频繁出现的字的非频繁字索引与按文档分隔的频繁字索引被分别创建和维护,从而更好地利用存储器和磁盘活动性,并允许更好的规模伸缩性。
一种索引系统,使得对含有对应于用户查询的字的文档的搜索更加便利。该索引系统识别出出现率低于文档阈值数目的非频繁字,并通过将非频繁字映射到含有这些字的文档的位置来维护非频繁字索引。一种频繁字索引通过映射含有超过文档阈值数目的出现率的字的文档位置来单独维护。当该索引系统用于搜索用户查询中的字时,该系统检测该查询中的非频繁字,并扫描这些非频繁字索引以找出含有该非频繁字的文档位置。
非频繁字索引可以以不同于频繁字索引的方式进行存储和分隔。非频繁字索引可以存储在专用的计算机系统或跨多个计算机系统分布在专用分区中。
通过结合下述附图的描述,本发明的这些目标、优点和特征将更加详细清楚。


通过附图中的示例来说明本发明,并不是要将本发明局限于此。
图1说明用于处理和安排数据库查询的系统的示例操作环境。
图2是用于实践本发明实施例的计算机系统体系框图。
图3是可用于本发明实施例的索引生成处理的功能框图。
图4是可用于本发明实施例的索引服务处理的功能框图。
图5是根据本发明实施例的索引方案的说明。
图6是根据本发明实施例的索引方案的说明。
具体实施例方式
图2说明索引引擎10的框图,所述引擎的特点在于一种文档索引系统,该系统接受文档数据,并以字对文档内容进行索引。一种网络排行器(webcrawler)235对因特网上由索引系统所索引的文档进行访问,并将该文档数据传送给索引构造器(index builder)240,该构造器对文档进行分析,并提取字和字位置以便在索引服务行(index serving row)250中存储。所述网络排行器、索引构造器、索引服务行维护和搜索引擎通常由计算机系统20(图1)上执行的软件来构造。所述计算机系统20依次通过通信连接和网络与其他计算机系统耦合。
该索引服务行250可以作为计算机系统20的矩阵构建,而每个计算机系统在一行中存储了已经被索引的文档的子集的字位置。在索引服务行中计算机系统20的附加行可以把计算机系统中找到的数据拷贝存储在第一行中,以允许对查询的并行处理,并当计算机系统故障时进行备份。
非频繁字索引如背景技术所述,按文档进行分隔是一种构建文档索引的典型方法。而这种方法可以有效处理具有显著出现次数的字(“频繁”字),而对于不经常出现的字(“非频繁”字)会导致非有效区域例如缓冲和I/O开销。例如,非频繁字位于频繁字之间,由于非频繁字通常比频繁字更少被查询,使得对数据缓冲效率低下。当含有被较经常查询的频繁字的存储器页移到存储器中,非频繁且因而较少使用的字包含在页中,占据了昂贵的缓冲存储器,且提供很少利益。
另一种将非频繁字和频繁字混合的坏处是在于磁盘I/O区域方面。查询被分布给含有文档的所有计算机系统,并且每个计算机系统必须执行I/O和搜索操作以检索信息的较少字节,如果存在的话。因此,分开地对一种非频繁字索引和按文档分隔的频繁字索引进行创建和维护。这能更好地利用存储器和磁盘活动性,并允许更好的规模伸缩性。
再次参照图2,示出一种文档搜索系统的计算机系统布局体系结构10。当处理用户的查询和请求时,自动导航计算机系统215对该系统中的其他计算机系统的工作进行协调。排序计算模块245跟踪Web网站的流行程度并将该信息提供给网络排行器235,该排行器基于已经处理的Web网页上存在的链接从因特网检索文档。索引构造器240对由排行器235所检索到的文档中找到的字进行索引,并将数据传送给一组索引服务行250以存储所索引的信息。在此所述的实施例中,索引服务行包括十“行”或每行中五百台计算机系统集合。经索引的文档跨一行中的五百台计算机系统分布。这十行含有相同的索引数据并对彼此拷贝,以允许并行处理请求,并实现备份。索引器将任何有关非频繁字的信息放置在专用分区或存储非频繁字索引的计算机系统(在索引服务行250中标记为“D”)中。该非频繁字索引如图2所示存储字或如图6(下面将详细描述)所示按文档进行存储。
前端处理器220接受用户的请求或查询,并将查询传送给联盟(federation)和高速缓冲服务器230,将查询安排给合适的外部数据源,并访问索引服务行250以对存储的信息进行内部搜索。查询结果由联盟和高速缓冲服务器230提供给前端处理器220,并且前端处理器220与用户对接以便以合适的格式提供经排序的结果。前端处理器220还特别通过监测用户选择了哪些结果以对所提供的结果的相关性进行跟踪。
图3示出网络排行器235、索引构造器240和索引服务行250的功能性提供详细描述的功能框图。该排行器包括提取器(fetcher),从Web网络提取文档,并将这些要索引的文档提供给索引构造器240。在所索引的文档261中找到的有关URL的信息提供给排行器235以提供给提取器236新站点来访问。该排行器使用由排序计算模块245的排序信息来对其访问以检索文档的站点进行优先排序。
要索引的文档被排行器235传送给索引构造器240,该构造器包括分析器265,分析器对文档进行分析并从文档中提取特征。将包含在文档中找到的任何链接的链接映射278传送给排序计算模块245。该排序计算模块245将与查询独立的排序分配给正在分析的文档。该查询独立的静态排序可以基于许多其他文档,这些文档具有到该文档的链接、基于正在分析的URL的有用数据,或该文档的静态分析,或这些或其他因素的任意组合。
文档内容、在该文档中找到的任何链接和文档的静态排序传送给文档分隔模块272,该模块通过将存储器索引276传送给所选择的计算机系统,将所索引的文档内容分布到在索引服务行中的计算机系统中。链接映射278提供给排序计算模块245,以用于对将来文档的静态排序的计算。
非频繁字可以安排给如图2所示的行中的指定计算机系统273,或如果该非频繁字索引是存储在跨如图5所示频繁字索引相同的计算机系统上分布的分区中,就将非频繁字安排给文档分区272。
对一个字是非频繁的或不是非频繁的判定涉及在所索引的数据集上设置出现次数的阈值。该阈值可以依据能够容忍的网络负载量或依据磁盘I/O操作的尺寸来建立。当该索引在构造时,对字进行分隔并将频繁字存储在频繁字索引中,而将非频繁字存储在非频繁字索引中,这可能将其存储在如图2所述的单独计算机系统中,或分布在计算机系统的行上,如图5和6将要描述。
图4描述了相对于索引服务行250对搜索查询的处理的功能框图。该搜索查询安排给查询请求处理器123,该处理器将查询指定给联盟和高速缓冲服务230,在其中对查询进行预处理131以便使其以更好的条件呈现给联盟模块134,该模块有选择地安排所述查询给数据源例如搜索提供器137以及外部联盟提供器139。搜索提供器137是一种“内部”提供器,可以由同一作为搜索引擎的提供器进行维护。外部联盟提供器139被分开进行维护,并可以在搜索引擎提供者允许的情况下由搜索引擎访问。为了评价搜索提供器137上的查询,搜索提供器将查询141安排给查询散开和集合模块151,该模块将该查询跨索引服务行250所选行中的计算机系统上进行分布,并将从各计算机系统返回的结果进行集合。在非频繁字索引和频繁字索引157、159上执行来自散开模块的索引查询155。
图5和6说明了在跨计算机系统行上以分布形式存储非频繁字索引的两种替换方法。图5示出计算机系统I,II和III,每个系统分别存储从1到N,N+1到N+M和N+M+1到N+2M的所索引文档数的子集。示出了邻近非频繁字索引157的频繁字索引159的区域。在图5中,在文档上对频繁字和非频繁字索引进行索引和分隔。还是参照图4,当查询索引提供查询给散开和集合模块151时,检查该查询中的字以判定是否存在任何非频繁字。如果没有非频繁字,那么,该查询如前进行处理。如果存在非频繁字,那么,可以检索非频繁字索引数据159,并随后将其与频繁字索引数据157进行组合。如果该非频繁字数据以文档进行分隔,则在每个索引服务计算机系统上读取该数据并进行处理。由于非频繁字数据可能很快过期(age out),而频繁数据索引可能更密集高速缓存,所以,将略微改善高速缓冲性能。
图6示出非频繁字索引157’,该索引未被文档分隔,并且驻留在单个计算机系统D上。该数据按字形式而不是按文档形式存储。在所选择的索引行中的每个计算机系统将通过访问存储该非频繁字数据的计算机系统来取得有关任意非频繁字的数据。通过使用推方法(push approach),生成查询的计算机系统可以首先检索非频繁字数据,随后将其推出给所有的索引服务计算机系统。由于索引服务节点不需要彼此进行通信,而是通常把该数据提供给网络(因为该数据随查询传递),这就简化了处理过程。在一种拉方法中(pull approach),每个索引服务节点要么请求整个字信息,要么仅请求其所包含的文档的有关信息。通过拉方法,该索引服务节点可以对数据进行高速缓存。如果存在一些经常被查询的非频繁字,用于最近被查询非频繁出现的字的高速缓存就可以提高效率。
示范操作环境图1和下面的描述的目的是为了给可以实施本发明的合适计算环境提供一种简单、通用的描述。本发明将以计算机可执行指令为上下文环境来进行描述,例如计算机可执行程序模块,但这并不是必须要求的。通常,程序模块包括例行程序、程序、对象、组件、数据结构等,它们是执行特定任务或实现特定抽象数据类型。而且,本领域的技术人员可以理解本发明可以由其他计算机系统配置来实现,包括手持设备、多处理器系统、基于微处理器或可编程消费电子设备、网络PC、迷你计算机、大型计算机等。本发明还能在分布式计算机环境中实现,在该环境中任务是由通过通信网络链接的远程处理设备来执行。在分布式计算机环境中,程序模块可以位于本地或远程存储器存储设备中。
参照图1,一种用于执行本发明的示范系统包括以传统个人计算机20形式出现的通用计算机设备,包括处理单元21、系统存储器22和将各种系统部件(包括系统存储器22)耦合到处理单元21的系统总线24。系统总线23可以是任意几种类型的总线结构,包括存储器总线或存储器控制器、外围总线以及使用各种总线体系的局部总线。系统存储器22包括只读存储器(ROM)24和随机访问存储器(RAM)25。基本输入/输出系统(BIOS)26存储在ROM24中,它包括帮助例如在启动期间在个人计算机20的各单元之间传送信息的基本例行程序。个人计算机20进一步包括用于对硬盘进行读取和写入的硬盘驱动器27,用于对可移动磁盘29进行读写的磁盘驱动器28,以及用于对可移动光盘31例如CD ROM或其他光媒体进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34与系统总线23相连。这些驱动器和它们相关的计算机可读媒体为个人计算机20提供了计算机可读指令、数据结构、程序模块和的非易失存储。虽然在此所述的示范环境使用硬盘、可移动磁盘29和可移动光盘31,但本领域的技术人员需要理解其他可由计算机存取、可以存储数据的计算机可读媒体类型也可用于示范操作环境中,例如随机访问存储器(RAM)、只读存储器(ROM)等等。
许多程序模块可以存储在硬盘、磁盘29、光盘31、ROM 24或RAM 25上,包括操作系统35、一个或更多应用程序36、其他程序模块37和程序数据38。数据系统55可以存储在硬盘、磁盘29、光盘31、ROM 24或RAM 25上。用户可以通过输入设备向个人计算机20输入命令和信息,所述设备包括例如键盘40和指示设备42。其他输入设备包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪等等。这些和其他输入设备通常通过串行端口接口46与处理单元21相连,所述接口与系统总线23相连,但这些设备还可以与其他接口,例如并行接口,游戏接口或通用串行总线(USB)。监视器47或其他类型的显示设备还通过接口例如视频适配器48与系统总线23相连。除了监视器,个人计算机通常还包括其他外围输出设备,例如扬声器和打印机。
个人计算机20可以使用连接到一个或更多远程计算机,例如远程计算机49,的逻辑连接来在联网环境中工作。远程计算机49可以是另一个人计算机、服务器、路由器、联网PC、对等设备或其他公共网络节点,并且虽然在图1中仅示出一个存储器存储设备50,但通常包括许多或所有上述参照个人计算机20所述的元件。图1中描述的逻辑连接包括局域网络(LAN)51和广域网络(WAN)52。这种联网环境在办公室、公司计算机网络、企业内部互联网和因特网中很常见。
当使用LAN联网环境,个人计算机20通过网络接口或适配器53连接到局域网络51。当在WAN联网环境中使用,个人计算机20通常包括调制解调器54或其他用于在广域网52上建立通信的装置,例如因特网调制解调器54(可以是内置或外置式)可以通过串行端口接口46连接到系统总线23。在联网环境中,有关个人计算机20所描述的程序模块或其部分可以存储在远程存储器存储设备50中。可以理解所示的网络连接是示意性的,并且可以使用其他能够在计算机之间建立通信的装置。
从前面的描述中可以看出将频繁字索引与非频繁字索引分开创建和维护可以提高系统的性能。虽然本发明结合特定实施例进行描述,但需要理解本发明涵盖了所有落入本发明权利要求精神和范畴的修改和替换。
权利要求
1.用于处理用户查询的搜索引擎的系统,所述系统对含有对应于用户查询的字的文档进行定位,其特征在于,所述系统包括非频繁字识别器,对小于阈值数目的文档中出现的非频繁字进行识别;频繁字索引,对含有超出阈值数目的文档中出现的字的文档位置进行映射;与频繁字索引分开地进行维护的非频繁字索引,对含有非频繁字的文档位置进行映射;索引扫描部件,响应于含有非频繁字的查询,扫描所述非频繁字索引以找出含有所述非频繁字的文档位置。
2.如权利要求1所述的系统,其特征在于,所述频繁字索引按文档存储。
3.如权利要求1所述的系统,其特征在于,所述频繁字索引按文档分隔。
4.如权利要求3所述的系统,其特征在于,所述频繁字索引跨多个计算系统分布。
5.如权利要求1所述的系统,其特征在于,所述非频繁字索引按文档存储。
6.如权利要求1所述的系统,其特征在于,所述非频繁字索引按文档分隔。
7.如权利要求6所述的系统,其特征在于,所述非频繁字索引跨多个计算计算机系统分布。
8.如权利要求1所述的系统,其特征在于,所述非频繁字索引按字存储。
9.如权利要求1所述的系统,其特征在于,所述非频繁字索引按字分隔。
10.如权利要求9所述的系统,其特征在于,所述非频繁字索引被存储在单个计算计算机系统上。
11.如权利要求10所述的系统,其特征在于,所述索引扫描部件响应于含有非频繁字的用户查询,从非频繁字索引中检索具有所述非频繁字的文档的文档位置,并将所检索到的文档位置发送给含有所检索到的文档的频繁字索引的计算机系统。
12.如权利要求1所述的系统,其特征在于,进一步包括与非频繁字索引相关的索引高速缓存,存储最近被查询的非频繁字的文档位置。
13.用于处理用户查询的搜索引擎的方法,所述方法对含有用户查询中所要找的术语的文档集合进行搜索,其特征在于,所述方法包括扫描所述文档集合,并收集出现次数小于阈值的非频繁字;构建非频繁字索引,所述索引将非频繁字映射到含有所述字的文档位置;构建频繁字索引,与所述非频繁字索引分开地被维护,所述索引将出现次数大于阈值的频繁字映射给含有所述字的文档位置;检验所述用户查询中的术语以识别是非频繁字的任何术语;以及对识别为非频繁字的术语进行非频繁字索引搜索。
14.如权利要求13所述的方法,其特征在于,进一步包括在专用计算机系统中存储所述非频繁字索引。
15.如权利要求13所述的方法,其特征在于,进一步包括将所述非频繁字索引存储在计算机系统上的专用分区中,所述计算机系统还存储了频繁字索引。
16.如权利要求13所述的方法,其特征在于,进一步包括按字存储所述非频繁索引。
17.如权利要求13所述的方法,其特征在于,进一步包括按文档存储所述非频繁索引。
18.一种计算机可读媒体,其特征在于,包括用于执行权利要求13的方法的计算机可执行指令。
19.用于处理用户查询的搜索引擎的计算机可读媒体,其特征在于,包括用于对包含对应于用户查询的字的文档进行定位的计算机可执行指令对小于阈值数目的文档中出现的非频繁字进行识别;对频繁字索引中含有超出阈值数目的文档中出现的字的文档位置进行映射;与频繁字索引分开地对含有非频繁字的文档位置进行映射的非频繁字索引进行维护;响应于含有非频繁字的查询,扫描所述非频繁字索引以找出含有所述非频繁字的文档位置。
20.如权利要求19所述的计算机可读媒体,其特征在于,所述非频繁字索引按文档存储。
21.如权利要求19所述的计算机可读媒体,其特征在于,所述非频繁字索引按文档进行分隔。
22.如权利要求19所述的计算机可读媒体,其特征在于,所述非频繁字索引跨多个计算计算机系统分布。
23.如权利要求1所述的系统,其特征在于,所述非频繁字索引按字存储。
24.如权利要求19所述的计算机可读媒体,其特征在于,所述非频繁字索引按字分隔。
25.如权利要求19所述的计算机可读媒体,其特征在于,所述非频繁字索引被存储在单个计算计算机系统上。
26.如权利要求19所述的计算机可读媒体,其特征在于,包括创建与非频繁字索引相关的索引高速缓存,以存储最近被查询的非频繁字的文档位置。
27.用于处理用户查询的搜索引擎的设备,所述设备用于对含有用户查询中所找到的术语的文档集合进行搜索,其特征在于,所述设备包括扫描所述文档集合,并收集出现次数小于阈值的非频繁字的装置;构建非频繁字索引的装置,所述索引将非频繁字映射到含有所述字的文档位置;构建频繁字索引装置,与所述非频繁字索引分开地进行维护,所述频繁字索引将出现次数大于阈值的频繁字映射给含有所述字的文档位置;检验所述用户查询中的术语以识别是非频繁字的任何术语的装置;以及对识别为非频繁字的术语进行对非频繁字索引的搜索的装置。
全文摘要
一种文档索引系统利用了两种索引。一种非频繁字索引与一种频繁字索引被分开维护,所述非频繁字索引对在所索引的文档中不经常出现的字的位置进行映射。该非频繁字索引可以以与频繁字索引不同的方式进行存储和分隔以提高效率。
文档编号G06F17/30GK1648899SQ200510005929
公开日2005年8月3日 申请日期2005年1月20日 优先权日2004年1月20日
发明者D·A·沙基比, M·伯罗斯, G·萨林 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1