用于记号空间资料库的多级查询处理系统与方法

文档序号:6657044阅读:179来源:国知局
专利名称:用于记号空间资料库的多级查询处理系统与方法
技术领域
总体上讲,所公开的实施例涉及数据处理系统与方法,具体地讲,涉及用于具有相关索引的文档集合(以下,将其称为“记号(token)空间资料库”)的多级查询处理系统与方法。
背景技术
信息检索系统(例如,搜索引擎)使得查询与根据文档集(例如万维网)所生成的文档的索引相匹配。典型的逆索引(inverse index)包括每个文档中的单词,以及指向它们在文档中的部位的指针。文档处理系统通过使用自动的或手动进程处理从文档集所检索到的文档、页或地址的内容,来制备倒排索引(inverted index)。文档处理系统还可以把文档的内容或内容的各部分存储在资料库中,以供查询处理器在响应查询时使用。
一直存在着对更复杂的搜索和记分技术(scoring technique)的需求,以确保查询结果与查询相关联。某些记分技术可能要求对候选文档进行部分重构,例如确定文档中所发现的查询项或关键字的上下文。令人感到遗憾的是,引入这样复杂的技术可能会由于所涉及的额外的处理和开销而导致搜索性能的降低。

发明内容
所公开的实施例包括与一种用于记号空间资料库的多级查询处理系统与方法。所述多级查询处理系统与方法通过由多层映射方案所简化的递增文档重构而能够多级查询记分,包括“片段(snippet)”生成。在多级查询处理系统的一或多级,使用相关性得分集合,选择作文档子集作为有序列表呈现给用户。该相关性得分集合可以部分地从所述多级查询处理系统的先前级中所确定的一个或多个相关性得分集合中导出。在某些实施例中,多级查询处理系统能够对用户查询执行一或多遍,并且能够使用来自每个遍的信息,扩展用于后一遍中的用户查询,以改进有序列表中的文档的相关性。


图1为信息检索系统的实施例的方框图。
图2为图1的词典生成器的实施例的概念性方框图。
图3A为用于记号空间资料库的、对文档进行编码的编码系统的实施例的方框图。
图3B为用于记号空间资料库中的、对文档进行解码的解码系统的实施例的方框图。
图3C为用于对文档属性进行编码/解码的属性编码/解码系统的实施例的方框图。
图4为用于记号空间资料库的查询处理系统的实施例的方框图。
图5为用于记号空间资料库的多级查询处理系统的实施例的方框图。
图6为记号空间资料库服务器的实施例的方框图。
图7为查询处理服务器的实施例的方框图。
图8A为记号化文档资料库的第二实施例的方框图;以及图8B为图1的词典生成器的第二实施例的概念方框图。
图9A为用于词典生成器的实施例中的编码进程的概念图,以及图9B描述了用于表示编码的记号的示例性数据结构。
在这些图中的多个图中,相同的参照标记指示相应的部分。
具体实施例方式
系统概述图1为信息检索系统100的实施例的方框图。信息检索系统100包括文档处理系统102和查询处理系统104。信息检索系统100可以为任何一种能够响应查询而检索信息(例如,文件、电子邮件、应用程序等)的系统,包括但不局限于,用于在诸如Internet(例如,经由万维网)或者内部网(Intranet)的一个或多个网络上或在本地的用户的计算机上执行明确的或隐含的文档搜索的一个或多个计算机系统。注意,项“文档”意指文档、网页、电子邮件、专用(application specific)文档和数据结构、即时消息处理(IM)消息、音频文件、视频文件、以及可以驻留在一个或多个计算机系统上的任何其它数据或应用程序。
文档处理系统文档处理系统102通常包括一个或多个文档资料库106、词典生成器108、编码/解码系统110以及记号空间资料库112。编码/解码系统110从一个或多个文档资料库106中检索文档,将文档解析为记号,使用来自词典生成器108的映射,把记号编码为一种压缩的格式,然后把编码的记号存储在记号空间资料库112中。
“记号”可以为通常在文档中所发现的任何对象,包括但不局限于,项、短语、标点、HTML标签等。在解析之后,文档的集合表示为记号序列。而且,该记号序列中的每个记号都具有记号位置,该记号位置也代表该记号在文档集合中的位置。例如,该文档集合中的第一个记号可以被赋予位置0,该文档集合中的第二个记号可以被赋予位置1,等等。
需要注意的是,在某些实施方式中,采用与用于对文档进行解码的计算机完全不同的计算机集合来对文档进行编码。例如,网蠕动(crawling)系统可以包括对文档进行编码的文档处理系统102,而查询处理系统104可以对编码文档的所选择部分进行解码。在这样的实施方式中,由文档处理系统102所编制的文档逆索引和记号空间资料库112或其拷贝,由查询处理系统104使用。
词典生成器108通过对文档进行解析,生成用于对文档集合进行编码的映射(mapping)。此处,把词典生成器108所产生的第一映射称为全局词典,全局词典标识文档集合中的所有不同的记号(此处,称为唯一记号),并且把全局记号标识符赋予每个唯一记号。由词典生成器108所产生的第二映射实际上为映射的序列,此处,将其中的每个映射称为小词典。每个相应的小词典仅用于对文档集合中位置的相应范围进行编码和解码。以下将更详细地解释全局词典和小词典的生成和使用。
查询处理系统查询处理系统104包括耦接于编码/解码系统110的一个或多个查询处理器114以及记号空间逆索引116。记号空间逆索引116把文档集合中的所有GTokenID映射到它们在文档中的位置。从概念上讲,逆索引116包括针对每个GTokenID的记号位置的列表。为有效起见,对每个GTokenID的记号位置的列表进行编码,以减小逆索引所占空间量。
在某些实施例中,一个或多个查询处理器114把一个查询进行解析为多个查询项(terms),这些查询项被一个或多个查询处理器114变换成查询表达式(例如,布尔树表达式)。使用查询项对记号空间逆索引116编索引,以检索记号位置,以下将参照图4更全面地对此加以描述。在某些实施例中,把记号位置用于多级查询处理系统,该多级查询处理系统用于对与查询相关的文档进行记分,如针对图5所描述的。相应于查询项,查询处理器114生成经由一个或多个通信模式(例如显示设备、音频等)呈现给用户的文档的有序列表。
词典生成器图2为图1的词典生成器108的实施例的概念性方框图。词典生成器108包括全局词典编制器(builder)202和小词典编制器204。
全局词典编制器全局词典编制器202从文档资料库106中检索文档,并且通过把唯一全局记号标识符(GTokenID)赋予包含在文档中的每个唯一记号,生成全局词典206。在某些实施例中,文档资料库106被逻辑地或物理地划分成多个部分,有时将它们称为分区(partition),并且针对每个分区生成独立的全局词典206。在一个实施例中,数十亿个文档的集合划被分成数千个分区,对每个分区进行处理,以生成全局词典206。典型的全局词典206可以包括数百万个唯一记号。
在某些实施例中,在把文档解析成记号以及对记号进行处理之前,要被编码的文档集合(例如,一个分区中的文档)根据一个或多个准则进行分类。对文档的这种分类有助于对记号化的文档进行有效的编码,因为使用了类似的单词集合的文档将被彼此相近地放置在文档集合中。因此,与相反的情况相比,,每个小词典(以下所描述的)将平均覆盖文档集合的一个较大的部分,而且,文档的编码将占用较少的空间。在一个实施例中,首先根据语言对文档集合进行分类,然后,针对每种语言,根据URL对文档进行分类,其中URL的主机名部分的字段依次反转。例如,在根据语言进行分类之后,把所有的法语文档集合在一起,然后将根据URL对法语文档进行分类。当根据URL进行分类时,每个URL最初包括一个h1.h2...hy.hz/n1/n2...的模式,其中,h1.h2...hy.hz包括URL的主机名部分,而/n1/n2代表URL的余留部分。在根据URL进行分类之前,把URL重新映射到模式hy.hz...hy.hz/n1/n2...。例如,把URL“www.google.com/about.html”重新映射到“com.google.www/about.html”。通过在根据URL进行分类之前反转URL的主机名字段,可以根据文档相互间的逻辑接近性对文档进行分类。因此,可以把相似类型的文档(在针对某一具体语言的文档组中)集合在一起;在针对每个文档类型的文档组中,把每个网点上的文档集合在一起;在针对每个网点的文档中,把针对网点的不同分支的文档集合在一起;等等。
在某些实施例中,使用一种或多种群集技术对文档进行排序。可以使用包含在文档中的项(term)、单词或短语,把文档组织成与各种概念相关的群集。例如,可以把关于文档的一般信息(例如,嵌入所标识的文档或与所标识的文档相关的元数据)、从所标识的文档所取样的内容、和/或关于文档的类别信息用于对文档排序。
在某些实施例中,当对文档进解析时,全局词典编制器202存储有关每个所标识的唯一记号的信息(未在图2中加以描述),例如,文档集合中的每个唯一记号的出现的次数,以及与所述唯一记号相关的语言(如果存在的话)。可以根据与其中发现所述唯一记号的文档相关的语言,来确定与该记号相关的语言。当在与一种以上的语言相关的文档中发现特定记号时,可以使用任何适当的方法确定与该记号相关的语言。一种适当的方法是统计方法,该方法在解析文档集合以便标识唯一记号时使用。最初,把每个记号赋予其中发现该记号的第一文档的语言,然后,针对出现在与赋予该记号的当前语言不同的一种语言的文档中的记号的每次相继的出现,仅当在0和1之间随机(伪随机)选择的数小于1/N时,该记号都被重新赋予另一种语言,其中,N为所述记号的出现的当前次数。在其它一些实施例中,可以使用任何类似或适当的语言赋予机制,使得语言与每个唯一记号相关联。在某些实施例中,不把语言与代表标点符号的唯一记号相关联。在又一个实施例中,当可以把语言与每个唯一记号相关联时,当处理N个(例如256个)最频繁出现的记号时,忽略语言关联。因此,有效地忽略了与标点记号相关的语言。
在某些实施例中,根据唯一记号出现的频度,对唯一记号的列表、以及相关的频度和语言信息进行分类。作为选择,接下来,还可以对条目进行分类,以有助于对文档集合进行节省空间的编码。例如,在一个实施例中,首先根据出现频度对所有唯一记号进行分类。然后把唯一记号的所得到的分类列表划分成频带(band)。例如,顶级频带,即,频带0,可以包括最多255或256个记号(即,那些具有最高频度的记号)。第二个频带,即频带1,可以包括最多214个(即65536个)记号,不含频带0中的记号。第三个频带,即频带2,可以包括所分类的唯一记号的列表中接下来的214个(即65536个)记号。当然,在其它一些实施例中,每个频带中的记号的数目可以不同。接下来,根据第二准则集合,对每个频带中的记号进行分类。例如,在一个实施例中,按字母顺序、即按数字和字母的值,对第一频带中的记号进行分类。首先,按语言对每个其它频带中的记号进行分类,然后按字母顺对它们进行分类。因此,除频带0之外,根据语言,对每个频带中所分类的记号进行了分组,而且在每个语言组中,按字母顺对记号进行了分类。在其它一些实施例中,可以使用其它分类准则,对每个频带中的唯一记号的分类。
分类过程产生了唯一记号的分类的列表,每个唯一记号在列表中具有相应的位置。然后,向每个所分类的唯一记号赋予唯一的全局记号标识符(以下,也将其称为“GTokenID”)。GTokenID根据用于实现文档处理系统102的平台可以包括任何适当的数据类型与宽度(例如,32个比特的无符号整数)。在某些实施例中,按递增次序把GTokenID赋予所分类的唯一记号,以致可以向高频度记号赋予小值的GTokenID,以及向低频度记号赋予大值的GTokenID。更具体地讲,在一个实施例中,向所分类的记号列表中的每个记号赋予等于其在唯一记号的分类列表中的数值位置的32个比特的全局记号标识符。于是,向列表中的第一个记号赋予等于0(即,十六进制格式的00000000)的GtokenID,向列表中的第二个记号赋予等于1的GtokenID,等等。此处,把GTokenID映射到唯一记号值的结果集合称为全局词典206。在某些实施例中,全局词典206实际上包括两个映射结构,一个把GTokenID映射到记号,另一个把记号映射到GTokenID。在编码过程期间使用记号向GTokenID的映射,而在对文档的一些部分进行解码时,使用GTokenID向记号的映射。
如以下将更全面地加以解释的,根据频度对唯一记号进行排序,有助于减小存储小词典208所需的空间量。在那些其中根据除出现频度之外的其它准则对唯一记号的区进行分类的实施例中,情况更是如此,因为赋予较低GTokenID的频带中的记号比赋予较高GTokenID的频带中的记号具有更高的出现频度。
在某些实施例中,向那些比普通记号更频繁出现的“特殊”记号,例如HTML标签和标点,赋予占据了全局词典206中的GtokenID的前缀205部分(例如,GTokenID0-GTokenIDN-1)的GtokenID。可以把所有其它的GTokenID位移分配给前缀205的最后特殊的GTokenID。
在以上的讨论中,把GTokenID描述为固定长度值,例如32个比特的无符号整数值。然而,也可以把这些同样的GTokenID视为可变长度标识符,因为当为了存储对GTokenID进行编码时,可以在编码期间截断或屏蔽等于0的最高有效字节(或比特)。例如,在某些实施例中,把具有小于28的值的所有GTokenID编码为单字节值,把具有小于216的值的所有GTokenID编码为二字节值,以及把具有小于224的值的所有GTokenID编码为三字节值。在这一方式下,与具有低出现频度的记号相比,用较短长度的GTokenID表示文档集合中具有最高出现频度的记号。
在以下所描述的实施例中,记号空间资料库中填充了有固定长度的LTokenID,而不是可变长度的GTokenID。然而,把记号空间资料库中的LTokenID映射回原始记号(当然,它们也为可变长度的),需要存储大量的“小词典”,而且小词典内容包括GTokenID。为了有效存储小词典,可以把每个小词典中的GtokenID当作可变长度值。作为选择,每个小词典中的GtokenID也可以被作为这样列表首先对其进行Delta编码,然后使用可变长度的编码方案对所得到的Delta值进行编码。
小词典编制器在生成了全局词典206之后,由小词典编制器204生成小词典集合208,供编码/解码系统110使用。小词典208中的每个条目包括GTokenID和相应的局部记号标识符(LTokenID)。小词典208中的条目的位置暗示了每个条目的LTokenID,因此不需要显式地存储。每个相应的小词典208仅用于对记号化文档中的记号位置的不同的、相应的具体范围进行编码和解码,从而允许每个小词典208使用相同的LTokenID集合。例如,当小词典编制器204对整个文档进行解析时,针对小词典编制器204所遇到的前P个唯一记号,生成具有P个(例如256个)条目的第一小词典208(即,小词典A)。一旦已经遇到前P个唯一记号,则针对第一小词典208对于其为有效的记号位置的范围,产生包括开始记号位置Start_PosA的“有效范围映射”210中的第一条目。把第一小词典208中P个LTokenID中的每个LTokenID赋予唯一的GTokenID。当已经把所有LTokenID赋予GTokenID时,针对小词典编制器204所有遇到的下P个唯一记号,生成第二小词典208(例如,小词典B),并且在有效范围映射210中产生第二条目,其中有效范围映射210包括第二小词典208对于其为有效的位置范围的开始记号位置Start_PosB。因此,可以使用小词典B对具有落入范围Start_PosB~Start_PosC-1中的记号化的文档中的一个位置的记号进行解码,如图2中所示。
为了提供具体的例子,在一个实施例中,每个小词典中的LTokenID具有值0~255,每个值均由8个比特的无符号整数加以表示,而GTokenID为32个比特的无符号整数。通过从记号位置0开始,直至标识了预先规定数目的P个(例如256个)不同的记号,扫描文档集合,生成第一小词典。把这P个不同记号的GTokenID汇编(assemble)于列表中。在某些实施例中,根据数值值对列表中的GTokenID进行分类,其中,最小的GTokenID处于列表的顶部。然后,根据列表中GTokenID的位置,把LTokenID赋予列表中的GTokenID。例如,把一个为0的LTokenID赋予列表中的第一GTokenID,把一个为1的LTokenID赋予列表中的下一个GTokenID,等等。把所得到的从LTokenID至GTokenID的映射称为小词典208。从Start_PosA~Start_PosB的记号位置的范围与该小词典相关联。通过从紧随与第一小词典相关联的最后位置的位置Start_PosB开始扫描文档集合,生成第二小词典。这一扫描继续,直至识别出了预定数目的P个不同的记号,在这一位置,使用与以上所描述的相同的过程,生成第二小词典。小词典编制器204继续针对文档集合中的相继的记号位置范围生成小词典208的序列,直至文档中的所有记号都被映射到小词典208。
在一个可选的实施例中,每个小词典208中的前F个LTokenID保留给文档集合中F个最流行(popular)的记号。对于这F个LTokenID,LTokenID总是等于GTokenID。该赋值方案有助于对文档的快速解码。凡当对具有F-1或小于F-1的值的LTokenID(在记号空间资料库中)进行解码时,可以根据全局词典将其直接映射到记号,而无需首先把LTokenID映射到相应的GTokenID。
在每个小词典208使用相同的LTokenID集合(例如0~255个)。为了有助于压缩文档,与GTokenID(例如4个字节)相比,LTokenID具有较小的宽度(例如1个字节)。该宽度差(3个字节)表明用于把记号化的文档存储于记号空间资料库112中的每记号的字节数据的减少。在一个其中每个LtokenID占用一个字节的实施例中,在忽略其它支持数据结构所占空间(本文献中,以下将对它们加以描述)的情况下,具有10亿个记号的文档集合将占用记号空间资料库112中10亿个字节(1GB)。
当完成了生成小词典208的过程时,根据每个记号在记号化的文档中的位置,把记号化的文档中的每个记号与小词典208相关联。注意,如果记号化的文档中的每个唯一记号出现在一个以上的位置范围中,则可以把该记号与一个以上的小词典208相关联。在一个实施例中,一般的文档具有大约1100个记号,一般的小词典208囊括大约1000个记号。
在生成了每个小词典208之后,编码/解码系统110把文档集合的相应部分中的记号映射到LTokenID,并且将它们存储在记号空间资料库112中,以用于相继的检索。通过这一映射,把文档资料库106中的每个记号映射到记号空间资料库112中的固定长度(例如一个字节)的LTokenID。于是,在解码/解压缩期间,在记号空间资料库112中,从一个记号位置跳至另一个记号位置,而无需可能减慢解码过程的跳跃表或等效的数据结构,是可能的。
在某些实施例中,在需要进行文档重构之前,以压缩的格式对小词典208进行编码,并且将其加以存储。在一个实施例中,对每个小词典208中所分类的GTokenID列表进行Delta编码,然后按压缩的格式,较佳的做法是按有助于对小词典的快速与有效的解码和重构的格式,对所得到的Delta值的列表进行编码。2004年8月13日提出的、序号为10/917,745的、名为“System andMethod for Encoding and Decoding Variable-Length Data”(“用于对可变长度数据进行编码和解码的系统和方法”)的待审美国专利申请中,描述了一种适当的数据结构和编码/解码方法。
为了对特定文档进行解压缩,把与该文档的记号位置范围相关的小词典208解压缩成把LTokenID转换成相应GTokenID的转换表或根据小词典208的条目所编制(build)的映射。于是,可以通过读取存储在针对该文档的记号空间资料库112中的固定长度的LTokenID,以及访问该文档中针对每个记号位置的小词典以便把LTokenID转换成相应的GTokenID,来完成对记号空间资料库112中的记号化的文档的解码。然后,使用全局词典206把GTokenID映射成相应的记号(例如,文本和标点),从而重构了整个文档或文档的某一部分。
编码系统图3A为对记号空间资料库的文档进行编码的编码系统300的实施例的方框图。编码系统300包括可选的前置处理器302、可选的Delta编码器304以及可变长度数据编码器306。例如,可变长度数据类型可以包括各种数据类型,但不局限于整数、字符串、浮点数、定点数等。可变长度数据包括,但不局限于文本、图像、图形、音频样本等。
在某些实施例中,前置处理器302接收信息的列表,该前置处理器为了进行有效编码对信息进行排序。前置处理器302可以使用一种或多种分类算法,把数据排序为单调序列。例如,如果根据值对整数集合进行分类,则就大小而言相邻的整数将互相靠近,于是,可以使Delta编码器304生成用于编码的、为小数值整数的Delta值。Delta编码器304接收排序的数据,Delta编码器304计算排序的数据的相邻对儿之间的差,以得到小数值的整数。可变长度数据编码器306接收小数值的整数,并且把这些数据编码为一种可以有效加以解码的压缩格式。2004年8月13日提出的、序号为10/917,745的、名为“System and Method for Encoding and Decoding Variable-Length Data”的待审美国专利申请中,描述了适当的可变长度数据编码器306的一个例子。
可以使用编码系统300的全部或一部分,对文档处理系统102所生成的各种信息进行编码。在某些实施例中,使用前置处理器302对每个小词典208中的GTokenID进行分类,以确保将对大小上最接近的整数值进行Delta编码。然后,由Delta编码器304对所排序的GTokenID进行Delta编码,以提供差值或余值。然后,使用可变长度数据编码器306,按组(例如,4个值的组)把差值编码为一个压缩格式。在某些实施例中,按一个逆索引,对记号位置的列表进行类似的编码,以有助于对位置的快速与有效的解码,如参照图4更全面加以描述的。
尽管可变长度数据编码器306提供了一种有助于快速和有效解码的压缩的格式,但也可以把其它已知的编码方案用于文档处理系统102,以压缩信息的列表(例如,CCITT-G4、LZW等)。
解码系统图3B为对记号空间资料库中的文档进行解码的解码系统308的实施例的方框图。解码系统308包括可变长度数据解码器310和可选的Delta解码器312。在某些实施例中,由可变长度数据解码器310接收所编码的数据组,可变长度数据解码器310借助一个或多个位移/屏蔽表对各组进行解码。Delta解码器312接收所解码的数据,Delta解码器312计算运行和,从而产生Delta解码的数据,这等效于原始的信息列表。2004年8月13日提出的、序号为10/917,745的、名为“System and Method for Encoding and DecodingVariable-Length Data”的待审美国专利申请中,更全面地描述了在对组编码的可变长度整数值进行解码的过程中对位移/屏蔽表的使用。
属性编码/解码系统图3C为用于对文档属性进行编码/解码的属性编码/解码系统314的实施例的方框图。属性编码/解码系统314包括编码/解码系统320,编码/解码系统320把属性信息322编码为属性记录318,以存储在属性表316中。逐个记号地确定文档的属性,其中采用0或1的比特值来表示给定记号的每个属性的存在或不存在。例如,可以把属性表中的属性记录318概念性地表示为A×K个比特的映射,其中,A为所编码的属性的数目,K为其属性由属性记录318表示的记号的数目。如果A为8,K为32,那么每个属性记录318可以针对32个记号的每个存储8个属性。可以对每个属性记录318进行编码,以压缩属性表所占的空间量,同时能够在查询处理期间非常快地对所选择的属性记录进行解码。2004年8月13日提出的、序号为10/917,745的、名为“System and Method for Encoding and Decoding Variable-Length Data”的待审美国专利申请中,描述了一种用于对属性记录318进行编码和解码的适当的方法。作为选择,也可以对每个属性记录中的信息进行运行长度编码。
记录在属性表316中的属性集合,可以包括一个或多个字体属性(例如,粗体、下划线等)、一个或多个文档位置属性(例如,题目、标题等)、元数据以及可用于对文档集合中的记号之间加以区别的任何其它特性或特征。在某些实施例中,在对记号化的文档进行编码,并且将它们存储在记号空间资料库中的同时,对文档集合中的记号的属性进行标识,并且对它们加以编码,如以上所描述的。把所编码的属性用于一个或多个相关性得分的级别,如参照图5更全面地加以描述的。
文档资料库编码与解码系统--第二实施例图8A和8B为一个实施例的方框图,其中,按与以上所描述的方式略有不同的方式对一组记号化的文档(“记号空间资料库”)进行编码。如以上所描述的,全局词典编制器202对文档集合106进行记号化、标识所有唯一记号、以及把全局记号标识符赋予所有唯一记号。结果为全局词典206。接下来,区域词典编制器804处理该文档集合(已被记号化)。概念地把文档集合划分为区域820,然后把每个区域820划分成块822。区域词典编制器804针对每个区域编制“词典”,即字典830,编码系统810为每个区域生成被编码的记号832的集合以及用于每个区域的块位移834的集合。区域词典830、编码的记号832以及块位移834(以下,将更详细地对它们分别加以描述),共同形成文档集合的各个区域820的编码表示法。
在一个实施例中,文档集合被划分成区域820,每个区域820(或许除了最后区域之外)具有预定的固定大小,诸如8192个记号(或任何其它适当的大小)。区域820的每个块822也具有一个预定义的固定大小,诸如64个记号(或任何其它适当的大小)。
在一个实施例中,针对相应区域820的“词典”830为具有最高重复率的最长记号序列的有序列表,或任何类似的结构。可以通过在所述区域中编制候选记号串的表,确定它们在所述区域中的重复次数,然后选择最佳候选,直至达到最大词典大小,编制词典830。在示例性实施例中,最大词典大小为64个记号,然而,在其它实施例中,也可以使用任何其它适当的大小限制。如以下将加以描述的,词典830用作对相应区域820的每个块822进行编码的上下文,从而能够高度压缩区域的表示。在某些实施例中,可以按一种压缩的格式对一个或多个区域词典830进行编码,例如,使用本文献中先前所参照的2004年8月13日提出的、序号为10/917,745的、名为“System andMethod for Encoding and Decoding Variable-Length Data”的美国专利申请中所描述的编码方法。
参照图9A和9B,在一个实施例中,编码系统810按如下方式对记号的每个块822进行编码。把针对相应区域的词典830作为紧在所述块的记号之前的一个记号集合加以对待。从第一个到最后一个,顺序地处理所述块的记号,把每个记号,并且尽可能多地把相继的记号与先前记号序列中的最长匹配记号序列,包括区域词典830,相匹配。如果发现匹配的先前序列,则生成“拷贝代码”。否则,生成“文字代码”,以表示记号。然后把当前代码所覆盖的所有记号作为先前记号加以对待,以用于块中下一个记号(如果存在的话)的相继处理。如图9B中所示,每个代表块中的记号集合的“代码”可以包括一个类型字段902。如果代码为“文字代码”,则代码的第二部分904代表全局记号标识符。在某些实施例中,这一类型字段902表示代表全局记号标识符所需的比特的数目。例如,在一个实施例中,类型代码902可以最多表示7种不同的文字代码,每个种都具有相应的全局记号标识符长度。在其它一些实施例中,不同类型代码的数目可以多于或少于8个(例如,一个表示拷贝代码,其余的表示文字代码)。如果文字代码为“拷贝代码”,则代码的第二部分906可以包括指针908和长度910,其中,指针908指出从先前文本的哪一个地方开始,长度910指出匹配的序列的长度(即,在解码期间将加以拷贝的记号的数目)。于是,比如,如果编码系统810发现了4个从当前位置之前的31个记号的部位开始的记号的一个匹配序列,则针对这一序列的代码将为<type=copy,ptr=31,length=4>
拷贝代码的长度(按比特加以测量)将依赖于区域词典830的最大记号长度和块的最大记号长度、匹配的序列的最大允许长度、以及不同代码的数目。在一个例子中,类型字段902为3个比特(允许8个类型代码)、指针字段908为7个比特,以及长度字段910为2个比特,总共12个比特。在其它一些实施例中,也可以使用针对拷贝代码的每个字段的其它比特长度。由文字代码的类型指出每个文字代码的长度(按比特加以测量)。
回过头来参照图8B,当编码系统810对区域的块进行编码时,编码系统810生成指示针对该区域的每个块的编码的记号的部位的块位移834的集合。在一个实施例中,该区域的第一个块的块位移为进入记号空间资料库的指针,而且针对该区域的每个其它块位移为相对该区域中的第一块的开始位置的相对位移。在一个实施例中,把区域词典830和块位移834存储在根据按固定区域大小所划分的区域820的开始位置加以索引的表或等效的数据结构中。从另一个角度来看,向每个区域820赋予了区域号码,该区域号码包括其按固定区域大小所划分的开始位置,并且按区域号码对其中存储了区域词典830和块位移834的一个或多个数据结构加以索引。
通过对相应区域的区域词典830的定位,使用针对区域820的块位移834对编码的块进行定位,然后对针对所述块的代码集合进行解码,以产生全局记号标识符的序列,实现对该区域的块822的解码。接下来,可以使用全局词典206,把所得到的全局记号标识符的序列或其任何子集转换成相应的符号或项集合。
查询处理系统图4为用于记号空间资料库的查询处理系统104的第一级的实施例的方框图。查询处理系统104包括全局词典402、记号空间逆索引408、第一级查找表406以及第二级查找表410。全局词典402接收查询项或串,全局词典402使用根据全局词典402的条目所编制的表或映射,把查询项转换成GTokenID。逆索引408接收GTokenID,逆索引408包括映射404,映射404把GTokenID映射到存储在逆索引408中的索引记录412。使用映射404所标识的每个索引记录412包括记号位置的列表,该列表直接对应于记号空间资料库112中的记号位置。在某些实施例中,在生成全局词典之后,生成逆索引408,并且可以在与用于生成小词典而遍历文档的同一遍期间,生成逆索引408。
在某些实施例中,逆索引408提供了位置列表,该位置列表可用作进入第一级查找表406的索引。当查询包含多个项时,逆索引408产生多个位置列表。为了避免必须针对相应于一个或多个位置列表中的每个位置的一个条目搜索整个DocID映象图410,第一级查找表406具有针对记号空间资料库中每个位置块的条目。例如,每个块可以具有32768个位置的大小,而且每个条目可以具有指向针对相应位置块的DocID查找表410中的第一条目的指针。于是,第一级查找表406可以把一个或多个位置列表转换成第二级查找表410中的文档标识符(DocID条目)412的开始点位置。作为选择,也可以把表406和410统称为DocID查找表。第二级查找表410中的每个条目412包括DocID(文档标识符)以及相应文档的开始资料库位置。在第二级查找表410中,任何文档中的最后一个记号均处于紧在下一个标目412所标识的开始位置之前的位置。第二级查找表410接收针对DocID的开始点位置Start_PosA-Z,第二级查找表410把开始点位置转换成针对每个查询项的一个DocID的列表。
在某些实施例中,第一级查询处理器416包括用于产生结果集合的逻辑416。逻辑416根据查询或查询树所指定的布尔逻辑合并DocID的列表,以形成DocID的结果集合。逻辑416还可以有选择地过滤记号位置的列表,以消除没有位于相应于结果集合中的DocID的文档中的记号位置。而且,还可以使用DocID的所标识的每个文档中的DocID和记号位置,将记分功能施加到结果集合,以使得得分(有时将其称为查询得分)与结果集合中的每个DocID相关联。
多级查询处理图5为利用记号空间资料库524的多级查询处理系统500的实施例的方框图。在某些实施例中,查询处理系统500包括4个查询处理和相关性得分生成级,即包括第一级查询处理器510、第二级查询处理器514、第三级查询处理器518以及第四查询级处理器520。注意,在系统500中,可以使用或多或少的查询处理器级,取决于具体的应用。根据应用场合,每级计算一个或多个可以返回给用户的相关性得分集合与/或把它们与先前级中所生成的相关性得分加以组合。
查询处理--级1已针对图4一般性地描述了第一级查询处理器510。查询解析器504对查询串502进行记号化,并且将其解析成查询项(即,把查询中的每个不同的项作为记号加以对待)。记号化的查询项被全局词典映射508使用转换表或映射转换成相应的GTokenID,如先前参照图2和4所描述的。由于用户可以在他们的查询串中使用特定的操作符(operator),包括布尔、邻接、或相近性操作符,所以系统500可以将查询解析成查询项和操作符。操作符可以按特定化格式(例如,AND、OR),以保留的标点(例如,问号)或者保留的项(term)的形式出现。在自然语言处理(NLP)系统的情况下,无论可以如何表达操作符,都能够在所使用的语言中隐含地识别操作符(例如,介词、连接词、次序关系等)。第一级查询处理器510中也可以包括其它的查询处理,例如删除结束单词(例如“a”、“the”等)以及项干(即,去除单词前缀)。
接下来,查询扩展器506处理GTokenID的列表,查询扩展器506生成查询树或其它的查询表示,并且考虑到查询串中所使用的任何操作符(例如布尔表达式)。作为选择,查询扩展器506还可以按各种方式扩展查询。例如,可以把查询项转换成子树,该子树包含所述项和一个或多个同义词项,或者与查询项相关的其它项,子树中的项通过OR操作符或者父结点而彼此相关。
如以下将更详细地加以描述的,在某些实施例中,根据图5中所示的查询处理级的序列,一次或多次地处理查询。在每个遍(除最后一遍)中,生成附加查询扩展项(以下将对此加以解释),然后,把这些附加项添加到查询树。也可以把查询树用作记分树,记分树具有与查询树中的项相关的权重。所扩展的查询树还可以包括不要求出现在相应于查询的文档中,但将它们用于对相应于查询的文档的相关性的记分的补充的项和项的子树。如果存在一个以上的查询项,则在第一遍期间,可以针对查询项计算权重,以改进搜索结果。
在某些实施例中,遍历系统500的第一遍处理来自文档集的文档的随机样本。可以根据能够由系统500使用的一个或多个较小的随机样本,选择随机样本的大小,以估计整个文档集中匹配查询的文档的数目。在其它一些实施例中,在遍历系统500的第一遍中,使用第一文档集(例如,查询对话期的一个集合),以及在遍历系统500的第二或相继的遍,使用第二、不同的文档集。使用先前的查询对话期集合,可以使系统500能够确定通常共同出现在类似查询中的其它相关的项。查询扩展器506可以使用这些相关项扩展相继各遍的查询。
第一级查询处理器510使用查询项搜索一个记号空间逆索引512,并且标识与查询相匹配的文档。第一级查询处理器510访问记号空间逆索引512,以产生查询树中项的记号位置(也称为记号空间资料库位置)的列表,并且访问DocID映象图516,以产生针对相应于记号位置的文档的DocID的集合。另外,第一级处理器510还执行由查询或查询树所指出的布尔逻辑,以生成相应于查询的DocID的集合。在某些实施例中,第一级查询处理器510还根据一个或多个记分算法,计算查询和每个文档之间的相关性得分的第一集合S1。总之,记分算法根据一个或多个查询特性向每个匹配的文档提供相关性,所述查询特性包括,但不局限于一个或多个查询项的存在或不存在、项频度、布尔逻辑实现、查询项权重、文档的流行性(例如,一个独立于文档的重要性、或流行性、或互连性的得分)、查询项相互间的相近性、上下文、属性等。在一个实施例中,相关性得分S1的第一集合基于包括查询项的存在性、项频度以及文档流行性的一组因素。
在某些实施例中,相关性得分的第一集合S1可用于选择作为有序列表呈现给用户的文档,然后,用户可以简单地点击和跟随指向所选择的文档的内部指针。在其它一些实施例中,把相关性得分的第一集合S1以及DocID和相应的位置提供于第二级查询处理器514,以进行进一步的处理。
查询处理--级2第二级查询处理器514从第一级查询处理器510接收DocID的集合、针对相应文档的记号空间资料库位置的列表、以及相关性得分的第一集合S1。第二级查询处理器514使用所述位置列表,根据文档中所发现的查询项的相近性或相对位置,生成相关性得分的第二集合S2。当在一个文档中,查询中的项相互靠近地出现时,与各项按较大距离出现时相比,所述文档更可能与所述查询相关。因此,与其中项按某一距离出现的文档相比,如果查询项互相相邻地出现,即相近地出现,则相关性得分的第二集合S2被用于将文档的等级排得较高。在某些实施例中,相关性得分的第二集合S2可用于选择作为有序列表用于呈现给用户的顶部的X文档,然后,用户可以简单地点击和跟随指向所选择的文档的内部指针。在某些实施例中,部分地根据相关性得分的第一集合S1导出相关性得分的第二集合S2(例如,通过根据第二级查询处理器514所使用的附加的得分因素,调整S1得分),以生成一个向用户提交的、与/或由第三级查询处理器518进一步处理的文档的有序列表。
查询处理--级3在某些实施例中,把第二级查询处理器514耦接于第三级查询处理器518,以处理已经在一个属性表522中加以编码的项属性(例如字体属性、题目、标题、元数据等),如以上参照图3C所描述的。第三级查询处理器518从第二级查询处理器514接收DocID的集合、针对相应文档的记号空间资料库位置的列表,以及相关性得分的第二集合S2。作为选择,第三级查询处理器也可以接收相关性得分的第一集合S1以及相关性得分的第二集合S2。
某些研究表明,文档中的项的部位表示其对文档的重要性。例如,在权重方面,出现在与某一查询相匹配的文档的题目中的项,可能重于出现在该文档的体中的查询项。相类似,出现在章节标题或文档第一段中的查询项与出现在文档中的不太重要位置中的项相比,很可能更能说明文档与所述查询的相关性。可以用于指示相关性的其它属性包括粗体文本、下划线文本以及字体大小。因此,使用与所述查询项相匹配的文档中的记号的属性,确定相关性得分的第三集合S3。参照图3C,为了访问文档中的查询项的属性(即,与查询项相匹配或相关联的记号的属性),使用该文档中的查询项的记号位置,执行进入属性表316(图5中的522)的索引操作。更具体地讲,如果由每个属性记录318对其属性进行编码的记号的数目为K,则把除以K的记号位置用于进入属性表316的索引。在某些实施例中,把所标识的属性一个或多个记录318以编码的、压缩的格式加以存储,因此,为了确定与每个查询项相关的属性,必须对其进行解码。
在某些实施例中,相关性得分的第三集合S3可用于选择作为有序列表向用户提交的顶部的Y个文档,然后,用户可以简单地点击和跟随指向所选择的文档的内部指针。在某些实施例中,部分地根据一个或多个相关性得分的第一和第二集合S1和S2导出相关性得分的第三集合S3,以生成呈现给用户的、与/或由第四查询级处理器520进一步处理的文档的有序列表。在某些实施例中,通过根据第三级查询处理器518所产生的附加的得分因素,调整S2得分,产生S3得分。
查询处理--级4第四查询级处理器520从第三级查询处理器518接收DocID的集合、相应于所述DocID的文档中的位置的列表、以及相关性得分的第三集合S3。第四查询级处理器520还可以有选择地接收相关性得分的第一与/或第二集合S1和S2。第四查询级处理器520耦接于解码系统527,接着解码系统527耦接于一个或多个小词典映射523、记号空间资料库524以及一个或多个全局词典映射508。以上,针对图1和图2,描述了小词典映射523、记号空间资料库524以及全局词典映射508。
第四查询级处理器520根据上下文生成相关性得分的第四集合S4,并且还可以为结果集合中所列的一个或多个文档生成“片段”。片段来自文档的小部分文本,通常包括出现在将加以搜索的关键字周围的文本。在一个实施例中,为了生成针对结果集合中所列的文档的片段,查询处理器对位于出现在文档中的每个查询项第一次出现之前和之后的预确定数目的记号进行解码,从而重构了文档的一个或多个文本部分,然后选择将包括在片段中的文本部分的子集。使用结果集合中的位置列表,解码系统527可以选择对文档的一些部分进行解码所需的小词典523,其中文档的所述一些部分为文档中查询项出现之前和之后的一些部分。所选择的小词典523和全局词典508用于把记号空间资料库中的LTokenID转换成GTokenID,然后用于把GTokenID转换成记号,如以上针对图2所描述的。
在某些实施例中,相关性得分的第四集合S4可用于选择作为有序列表向用户提交的顶部的Z个文档,然后,用户可以简单地点击和跟随指向所选择的文档的内部指针。在某些实施例中,部分地根据一个或多个相关性得分的第一、第二以及第三集合S1、S2以及S3导出相关性得分的第四集合S4,以生成向用户提交的、与/或由相关性反馈模块517进一步加以处理的文档的有序列表。在一个可选的实施例中,最后级查询处理器为那些在先前查询处理器级所产生的相关性得分方面具有最高得分的文档生成片段,但不生成相关性得分的一个新的集合S4。
在某些实施例中,把相关性得分的最终集合提供于一个相关性反馈模块517,相关性反馈模块517根据最后查询级所产生的结果集合中的文档,生成一个或多个新的查询扩展项。例如,相关性反馈模块517可以实现一个或多个已知的相关性反馈算法,包括,但不局限于基于一个全文档方案的伪相关性反馈算法(基于某一完整Web页的伪相关性反馈算法),文档对象模型(DOM)分段、基于页分段的显示(VIPS)、使用概念点阵的概念相关反馈等。相关性反馈算法可以分析根据先前查询处理级所核实(vet)的文档,并且可以根据分析结果生成查询扩展项。把新的查询扩展项提供于查询扩展器506,查询扩展器506生成将由一个或多个查询处理器510、514、518以及520所处理的新的查询表达式。于是,多级查询处理系统500能够针对一个查询执行两遍或两遍以上,并且使用来自每个遍的信息,生成改进了的查询,从而将最终致使用户可以接收更多相关的文档。
在一个实施例中,当执行查询的第一遍处理时,最后查询级处理器520产生一些长的片段,例如包括文档中查询项每次出现之前和之后的N个(例如10~40个)记号。如果片段超过一个预先定义的长度,则可以截断该片段。把查询和最后查询级520所产生的片段与相关性得分一起提供于相关性反馈模块517,以生成查询扩展项的集合,而且作为选择,也可生成查询项权重的集合。在扩展的查询的第二遍处理期间,最后查询级520产生一些长度适当的短的片段,以及用于随具有最高,即最佳得分的结果集合中的文档列表一起显示的内容。
在一个实施例中,查询处理系统包括L个并行的查询处理子系统,每个查询处理子系统包括针对一组文档的相应子集的逆索引512和记号空间资料库524。例如,查询处理系统可以包括1000多个并行查询处理子系统。所有查询处理子系统可以共享相关性反馈模块517(图5)。在遍历查询处理系统的第一遍期间,由并行查询处理子系统的一小部分处理查询,而在第二遍期间,由整个查询处理系统处理查询。例如,可以把查询处理系统划分成S个子集(例如32个子集),并且根据把杂凑函数施加到查询的正常化的版本的结果,把每个查询赋予这些子集之一,然后把取模函数施加到杂凑函数所产生的结果。可以把查询处理系统的每个子集称为查询处理系统的“分区”,并且可以把每个查询处理子系统称为“子分区”。
查询的第一遍处理的主要目的是,产生查询扩展项的集合,以及查询项权重,以改进由查询的第二遍处理所产生的查询结果的质量。只要在查询处理系统中把文档适当、随机地在所有查询处理子系统之间加以分布,则查询仅需少数子系统加以处理,就可以产生查询扩展项的一个集合。查询扩展器506使用查询扩展项产生扩展的查询树或查询表达式,然后由查询处理级(在查询的一个第二遍处理中)对它们加以处理,如以上所描述的。例如,可以把查询“纽约的照片”扩展为“纽约(照片或图像,或者图像或照片)”。可以对第二遍期间最后查询级所产生的结果集合和片段进行格式化,以由从其处接收查询的计算机或设备加以显示(或者更一般地讲,加以提交)。
在一个实施例中,在与相继遍不同的数据资料库上执行查询的第一遍处理。例如,针对第一遍的初始数据资料库,可以为先前处理过的查询的一个数据资料库,而用于相继遍的数据资料库可以为具有用于把查询映射到该数据资料库中的文档的一个逆索引的文档集合。
文档处理服务器图6为记号空间资料库服务器600的实施例的方框图。服务器600可以为独立的计算机系统或是包括多个计算机系统的分布式处理系统的一部分。通常,服务器600包括一个或多个处理单元(CPU)604、一个或多个网络或其它通信接口608、存储器602、以及用于互连这些部件的一条或多条通信总线606。服务器600可以有选择地包括用户接口,例如,显示器和键盘。存储器602可以包括高速随机存取存储器,还可以包括非易失存储器,例如一个或多个磁盘存储设备。存储器602可以包括远离一个或多个中央处理器604的海量存储器。
存储器602存储操作系统610(例如,Linux或者Unix)、网络通信模块612、词典生成器614(例如词典生成器108)、编码系统616(例如,编码系统300)、一个或多个全局词典618(例如,全局词典206)、一个或多个小词典620(例如,小词典208)、记号空间资料库622(例如,记号空间资料库112)、属性记录624(例如,属性记录表316)、以及有效范围映射626(例如,有效范围映射210)。以上已经针对图1~5描述了这些部件中每个部件的操作。
查询处理服务器图7为查询处理服务器700的实施例的方框图。服务器700可以为独立的计算机系统或为包括多个计算机系统的分布式处理系统的一部分。通常,服务器700包括一个或多个处理单元(CPU)704、一个或多个网络或其它通信接口708、存储器702、用于互连这些部件的一条或多条通信总线706。服务器700可以有选择地包括用户接口,例如,显示器和键盘。存储器702可以包括高速随机存取存储器,还可以包括非易失存储器,例如一个或多个磁盘存储设备。存储器702可以包括远离一个或多个中央处理器704的海量存储器。
存储器702存储操作系统710(例如,Linux或者Unix)、网络通信模块712、记号空间逆索引714(例如,记号空间逆索引408)、解码系统716(例如,解码系统308)、一个或多个词典转换表或映射718(例如,从全局词典206和小词典小词典208所导出的)、有效范围映射720(例如,有效范围映射210)、DocID映射722(例如,DocID映射410)、查询解析器724(例如,查询解析器504)、查询树726、一个或多个查询处理器728(例如,查询处理器510、514、518以及520)、属性记录730(例如,属性记录表316)、以及记号空间资料库732(例如,记号空间资料库112)。以上已经针对图1~5描述了这些部件中每个部件的操作。
已参照具体的实施例,解释性地进行以上的描述。然而,这些说明性的讨论,不旨在穷举性地描述本发明,也不旨在把本发明限制于所公开的精确形式。鉴于以上的描述,对本发明的许多修改与改变是可能的。这些实施例的选择与描述,旨在充分地解释本发明的原理及其实际的应用,从而可使这一技术领域中的其他熟练技术人员能够对本发明和不同的实施例进行多方面的修改,以适应所考虑的具体应用,从而可充分利用本发明和不同的实施例。
权利要求
1.一种用于在多级查询处理系统中处理查询的方法,包括响应一个或多个查询项,从索引检索第一文档标识符集合;针对相应于第一文档标识符集合的至少一个子集的压缩文档集合,生成相关性得分的第一集合;解压缩所述压缩文档集合的至少一部分,以恢复第一记号集合,其中,所恢复的第一记号集合与所述相应于第一文档标识符集合的压缩文档集合中的位置相关联;以及根据所恢复的记号集合的第一集合,生成附加查询项;使用所述附加查询项,制定新查询;以及处理所述新查询,以从所述索引检索第二文档标识符集合,并且至少部分基于所述附加查询项生成相关性得分的第二集合。
2.根据权利要求1所述的方法,还包括解压缩所述压缩文档集合的至少一部分,以恢复第二记号集合,其中,所恢复的第二记号集合与所述相应于第二文档标识符集合的压缩文档集合中的位置相关联;以及使用所恢复的第二记号集合,重构所述压缩文档集合的一个或多个部分。
3.根据权利要求1所述的方法,还包括把所重构的部分随至少部分地基于所述相关性得分的第二集合从所述压缩文档集合中选择的文档的有序列表一起呈现给用户。
4.根据权利要求1所述的方法,其中,所述相关性得分的第二集合基于相应于第二文档标识符集合的所述压缩文档集合中的查询项的一个或多个位置。
5.根据权利要求1所述的方法,其中,所述相关性得分的第二集合基于相应于第二文档标识符集合的所述压缩文档集合中查询项之间的距离。
6.根据权利要求3所述的方法,其中,所述相关性得分的第二集合基于其中在相应于第二文档标识符集合的所述压缩文档集合中使用查询项的上下文。
7.一种在多级查询处理系统中处理查询的方法,包括响应一个或多个查询项,检索第一信息集合;根据第一信息集合,生成至少一个附加查询项;使用所述至少一个附加查询项,制定新查询,该新查询具有多个查询项;以及处理所述新查询,从索引检索文档标识符集合;针对相应于所述文档标识符集合的至少一个子集的压缩文档集合,生成相关性得分集合;解压缩所述压缩文档集合的至少一部分,以恢复记号集合,其中,所恢复的记号集合与相应于所述文档标识符集合的所述压缩文档集合中的所述多个查询项的一个或多个查询项的位置相关联;以及根据所述文档标识符集合的至少一部分,生成文档列表,该列表包括相应于所恢复的记号集合的至少一部分的信息。
8.一种其上存储指令的计算机可读介质,当多级查询处理系统中的处理器执行所述指令时,导致处理器执行下列操作响应一个或多个查询项,从索引检索第一文档标识符集合;针对相应于第一文档标识符集合的至少一个子集的压缩文档集合,生成相关性得分的第一集合;解压缩所述压缩文档集合的至少一部分,以恢复第一记号集合,其中,所恢复的第一记号集合与相应于第一文档标识符集合的所述压缩文档集合中的位置相关联;以及根据所恢复的记号集合的第一集合,生成附加查询项;使用所述附加查询项,制定新查询;以及处理所述新查询,以从所述索引检索第二文档标识符集合,并且至少部分基于所述附加查询项生成相关性得分的第二集合。
9.一种多级查询处理系统,包括用于响应一个或多个查询项,从索引检索第一文档标识符集合的部件;用于针对相应于第一文档标识符集合的至少一个子集的压缩文档集合,生成相关性得分的第一集合的部件;用于解压缩所述压缩文档集合的至少一部分,以恢复第一记号集合的部件,其中,所恢复的第一记号集合与相应于第一文档标识符集合的所述压缩文档集合中的位置相关联;以及用于根据所恢复的记号集合的第一集合,生成附加查询项的部件;用于使用所述附加查询项,制定新查询的部件;以及用于处理所述新查询,从所述索引检索第二文档标识符集合,并且至少部分基于所述附加查询项生成相关性得分的第二集合的部件。
全文摘要
一种多级查询处理系统与方法,该多级查询处理系统与方法通过一个多层映射方案所简化的递增的文档重构,允许多级查询记分,包括“片段”生成。在多级查询处理系统的一个或多个级,使用一个相关性得分集合,选择作为一个有序列表向用户提交的文档的一个子集。可以部分地从多级查询处理系统的先前级中所确定的相关性得分的一个或多个集合中导出相关性得分集合。在某些实施例中,多级查询处理系统能够一或多遍地执行一个用户查询,并且能够使用来自每个遍的信息,扩展用户查询,以在相继遍中用于改进有序列表中的文档的相关性。
文档编号G06F17/30GK101036143SQ200580034128
公开日2007年9月12日 申请日期2005年8月8日 优先权日2004年8月13日
发明者杰弗里·A·迪安, 保罗·G·哈尔, 奥尔坎·瑟齐诺格鲁, 阿米塔布·K·辛加尔 申请人:谷歌股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1