专利名称:搜索引擎的有效前向排序的制作方法
搜索引擎的有效前向排序
背景技术:
在因特网上可得到的信息和内容的数量继续非常快地增长。考虑到信息的数量之大,已开发了搜索引擎以便于电子文档的搜索。具体地,用户可通过键入包括用户可能感兴趣的一个或多个术语的搜索查询而搜索信息和文档。在从用户接收搜索查询后,搜索引擎基于该搜索查询标识相关的文档和/或网络页面。因为其效用,网络搜索,即为用户发出的搜索查询发现相关的网络页面和文档的处理,可以说已成为今天因特网上最流行的服务。另外,搜索引擎典型地使用单步处理,其基于所接收的搜索查询,利用搜索索引标识相关的文档以返回至用户。然而,搜索引擎排序功能变成为非常复杂的功能,如果该功能用于被索引的每一文档,则可能既耗时又昂贵。另外,这些复杂的公式所需的数据存储也可能出现问题,特别是当数据存储在典型地通过字或短语索引的反向索引(reverse index) 中时更是如此。当存储在反向索引中时,复杂公式所需的相关数据的提取效率较低。
发明内容
提出本发明内容以简化的形式介绍以下在具体实施方式
中进一步描述的概念选集。本发明内容既不意图标识所要求主题的关键特征或必要特征,也不意图用于辅助确定所要求主题的范围。本发明的实施例涉及用于对作为搜索查询的结果的文档进行排序的前向索引的生成和使用。在一个实施例中,在排序处理中使用前向索引是最终处理阶段(stage),从而排序处理的先前处理阶段利用反向索引初步地标识可能与搜索查询相关的文档。因为在一些情况下,利用前向索引的最后处理阶段可能更耗时且成本更高,其可被用于先前已标识为与搜索查询相关的有限数量的文档。前向索引一般地包括多个条目,每个条目与具体的文档相关联。可能针对每个条目而包含在前向索引中的示例信息为文档的令牌流,关于各种语境在令牌流中的位置的指示(例如,标题、URL、主体),与文档相关联的静态特征,和指示相关数据在前向索引中的位置的位置索引。如所述,前向索引可独自使用或用作基于搜索结果的排序文档的排序处理中的一处理阶段(诸如,最终处理阶段)。
本发明参照附图在下文进行详细描述,其中
图1是适用于实现本发明的实施例的示例计算环境的框图; 图2是可采用本发明的实施例的示例系统的框图; 图3是根据本发明的实施例,前向索引中的条目的示例数据结构; 图4是示出了根据本发明的实施例用于生成前向索引中的条目的方法的流程图;以及图5是示出了根据本发明的实施例使用前向索引来基于搜索查询提取用于排序文档的信息的方法的流程图。
具体实施方式
这里特别地描述本发明的主题以符合法定要求。然而,该描述本身并不意图限制本专利的范围。相反地,发明者已预期所要求的主题也可能以的其他方式实现,来包括与其他当前或进一步技术相结合的不同的步骤或与本文件中描述的那些步骤相似的步骤组合。 此外,虽然术语“步骤”和/或“框”此处可被用于意味着所采用的方法的不同元件,但是除非且除明确地描述的个别步骤的次序之外,术语不应被解释为暗示在此处公开的各种步骤之中或此处公开的各种步骤之间的任何特定次序。如上所述,本发明的实施例提供了前向索引,在一个实施例中,该前向索引用作多处理阶段文档排序处理中的一处理阶段。例如,第一处理阶段可包括使用反向索引以标识与所接收的查询相关的多个文档。然后,这些文档在利用此处描述的前向索引的排序排序的第二处理阶段中使用。前向索引是包括多个条目(每个条目与文档相关联)的索引。这样, 前向索引通过文档索引,并包括数据的各种类型,诸如,对应于文档的令牌流的压缩版本, 文档的各种语境部分(例如,主体、标题、URL)的压缩分离流,与文档的静态特征相关联的文档特定数据、与被频繁地用于从前向索引的特征提取的相关数据相关联的位置信息等。因此,在一方面,本发明的实施例指向用于生成前向索引中的条目的方法。该方法包括接收文档和对应的文档标识,并接收与文档相关联的一个或多个静态特征。该一个或多个静态特征与搜索查询无关。进一步地,该方法包括将文档解析为令牌以形成文档的令牌流,根据一个或多个相关的数据在文档中的位置来确定位置信息,以及根据文档标识、文档的令牌流、静态特征和位置信息生成条目。该方法还包括在前向索引中存储条目。在另一实施例中,本发明的一个方面指向使用前向索引来基于搜索查询提取用于排序文档的信息的方法。该方法包括接收搜索查询,解析搜索查询以标识一个或多个原子 (atom),并使用从搜索查询解析的一个或多个原子创建查询令牌的令牌图。对于第一文档, 该方法包括在前向索引的第一条目中标识在与第一文档相对应的令牌流中、匹配令牌图中的查询令牌的文档令牌。对于匹配查询令牌的文档令牌,该方法还包括用每个匹配查询令牌的文档令牌在与第一文档相对应的令牌流中的位置来更新数据结构。另外,该方法包括利用数据结构中的数据,并从前向索引的第一条目中提取用于排序计算的排序信息。本发明的又一实施例指向一个或多个计算机存储介质,其上存储有表示用于基于搜索查询来排序搜索结果的前向索引的数据的数据结构。数据结构包括包含标识具体文档的文档标识信息的第一数据字段,包含文档的压缩令牌流的第二数据字段。数据结构还包括第三数据字段,其包含文档特定数据,该文档特定数据表示用于当接收查询时排序文档的文档静态特征;以及包含位置信息的第四数据字段,该位置信息指示了被频繁地用于计算文档排序的、与文档相关联的一个或多个相关的数据的位置。已简要地描述本发明的实施例的概况,下面描述其中可实现本发明的实施例的示例操作环境,以便提供用于本发明的各个方面的一般语境。首先具体参考图1,示出了用于实现本发明的实施例的示例操作环境,并在总体上指定为计算设备100。但是,计算设备 100是适合的计算环境的一个例子,且不意图暗示对于本发明的使用或功能范围的任何限制。计算设备100也不应被解释为具有涉及所说明的任何一个部件或部件组合的任何依赖性或要求。本发明可在计算机代码或机器可用指令的一般语境中描述,包括诸如程序模块之类的计算机可执行指令,该指令可通过计算机或诸如个人数据助理或其他手持设备之类的其他机器执行。一般地,包括例程、程序、对象、部件、数据结构等的程序模块是指执行具体的任务或实现具体的抽象数据类型的代码。本发明可在各种系统配置(包括手持设备、消费电子产品、通用计算机、更多专用计算设备等)中实现。本发明也可在其中由通过通信网络链接的远程处理设备来执行任务的分布式计算环境中实现。参照图1,计算设备100包括总线110,该总线110直接地或间接地耦接以下设备 存储器112,一个或多个处理器114,一个或多个呈现部件116,输入/输出(I/O)端口 118, 输入/输出部件120,以及例示性的电源122。总线110表示一个或多个总线(诸如,地址总线、数据总线或其组合)。虽然为了清楚而以线示出图1的各种框,在现实中,划分各种部件并不如此清晰,而且线为灰色和模糊的可能会更准确。例如,可以考虑诸如显示设备的呈现部件为I/O部件。而且,处理器具有存储器。发明者承认这是本领域的本质,并重申图1的图仅仅例示了能结合本发明的一个或多个实施例使用的示例计算设备。不在如“工作站”、 “服务器”、“膝上型计算机”、“手持设备”等这样的类别之间进行区别,因为所有这些均被预期在在图1的范围内并称为“计算设备”。计算设备100典型地包括各种计算机可读介质。计算机可读介质可以是能由计算设备100访问的任何可用介质,并包括易失性和非易失性介质、可移除和不可移除介质。通过例子的方式而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其他存储技术,CD-ROM,数字多功能盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备,或能被用于存储想要的信息并能由计算设备100访问的任何其他介质。通信介质典型地以调制的数据信号(诸如载波或其他运输机制)体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息递送介质。术语“调制的数据信号”意味着按照对信号中的信息进行编码的方式设置或改变其一个或多个特性的信号。通过例子的方式而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,和诸如声学、RF、红外和其他无线介质的无线介质。以上任何的组合也应被包括在计算机可读介质的范围内。存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可为可移除的、不可移除的,或其组合。示例硬件设备包括固态存储器、硬驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O部件120的各种实体读取数据的一个或多个处理器。呈现部件(多个)116向用户或其他设备呈现数据指示。示例呈现部件包括显示设备、扬声器、打印部件、振动部件等。I/O端口 118允许计算设备100与包括I/O部件120在内的其他设备逻辑耦接,这些设备中的一些可以是内置的。例示性的部件包括麦克风、控制杆、游戏板、圆盘式卫星天线(satellite dish)、扫描仪、打印机、无线设备等。现在参照图2,提供了例示其中可以采用本发明的实施例的示例系统200的框图。 应理解,此处描述的该布置或其他布置仅作为例子列出。除那些已示出之外或代替那些已示出的,可使用其他布置和元件(例如,机器、接口、功能、次序和功能分组等),一些元件可被一并省略。另外,此处描述的许多元件是功能实体,其可作为分立部件或分布式部件或与其他部件结合并以任何适合的组合或位置来实现。此处描述为通过一个或多个实体执行的各种功能可通过硬件、固件和/或软件来完成。例如,各种功能可通过执行存储在存储器中的指令的处理器来完成。连同未示出的其他部件,系统200包括用户设备202、索引服务器204、索引生成器 206和前向索引210。例如,图2中示出的每个部件可以是任何类型的计算设备,诸如参考图1描述的计算设备100。部件可经由网络208相互通信。该网络208可包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这类网络环境在办公室、企业计算机网络、内联网和因特网中是普通事物。应理解,在本发明范围内的系统200内可采用任何数目的用户设备、索引服务器和索引生成器。每个可包括单个设备或在分布式环境中协作的多个设备。例如,索引生成器207可包括布置在分布式环境中的多个设备,这些设备集体提供了此处描述的索引生成器206的功能。另外,在系统200内也包括未示出的其他部件,同时图2 示出的部件在一些实施例中可被忽略。用户设备202可以是能够访问网络208的终端用户所拥有和/或操作的任何类型的计算设备。例如,用户设备202可以是台式计算机、膝上型计算机、平板计算机、移动设备,或具有网络访问的其他设备。一般地,此外,终端用户可采用用户设备202来访问索引服务器(例如索引服务器204)维护的电子文档。例如,终端用户可在用户设备202上采用网络浏览器来访问和查看来自索引服务器204的电子文档。索引服务器204可以是能够驻留电子文档并向诸如用户设备202的计算设备提供电子文档服务的任何类型的服务器设备。例如,索引服务器204可以是维护网络页面的网络服务器。索引生成器206可以是能够生成索引(诸如前向索引210)的任何类型的计算设备。如图2所示,索引生成器206包括文档解析部件212、位置信息部件214、条目生成部件 216、搜索查询解析部件218和令牌匹配部件220。进一步地,在一个实施例中,索引生成器 206包括被用于抓取索引服务器维护的网络页面并在搜索索引(诸如前向索引210)中索引来自网络页面的数据的抓取器。当用户向搜索引擎提交搜索查询时,搜索引擎可利用前向索引210对文档进行排序。在实施例中,利用前向索引210是用于对文档进行排序以提供最相关的搜索结果的一系列步骤中的一个步骤。例如,在一个实施例中,倒排索引和前向索引两者在更个处理中使用来对文档进行排序。与简单地索引单个术语相反,本发明的实施例采用的搜索索引索引了更高阶的基元(order primitive)或来自文档的“原子”。此处使用的“原子”可指查询或文档的各种单位。例如,这些单位可包括术语、η元语法(n-gram)、n元组(n-tuple)、k接近η元组(k-near n-tuple)等。术语向下映射到通过所使用的具体令牌化技术定义的单个符号或字。在一个实施例中,术语是单个字符。在另一实施例中,术语是单个字或字组。η元语法(n-gram) 是可从文档提取的一系列η个连续的或几乎连续的术语。如果η元语法(n-gram)对应于一连串的连续术语,则η元语法(n-gram)可以说是“紧的”,如果η元语法(n-gram)包含按照在文档中出现的顺序的术语但术语不必然地是连续的,则η元语法(n-gram)可以说是 “松的”。松的η元语法(n-gram)典型地用于表示一类同意义的短语,该短语中不重要的字有所不同(例如,“如果下雨我会淋湿的”和“如果下雨我则会淋湿的”)。此处使用的η元组 (n-tuple)是文档中同时出现(次序无关)的一组“η”个术语。进一步地,此处使用的k接近η元组(k-near n-tup 1 e )指在文档中的“ k”个术语的窗口内同时出现的一组“η ”个术语。因此,原子一般地被定义为上述全部的概称。本发明实施例的实现方式可使用不同的原子种类,但是,此处使用的原子总体上描述上述种类中的每一个。此处使用的前向索引是通过文档标识排序的搜索索引的一种类型,以便当知晓文档标识时,能够容易地定位与文档相关联的其他信息。在一个实施例中,前向索引被用作排序的最后一处理阶段,以便在访问前向索引时,知晓被认为与查询相关的一个或多个文档标识。除了获取在进行排序以对文档评分的这一处理阶段中使用的特征之外,前向索引用于验证先前的得分。前向索引中可存储各种类型的信息。仅为示例目的,可被存储在前向索引中的与具体文档相关联的一些信息可包括文档令牌流的压缩版本、文档语境(例如,标题、URL、主体)的压缩分离流、静态特征的文档特定数据、和被频繁地用于从前向索引条目的特征提取的重要数据的位置索引。例如,可枚举并以一定顺序列出文档中的字,然后进行压缩。在一个实施例中,文档语境(例如,标题、URL、主体)可被存储为上述分离流,但在其他实施例中,前向索引可简单地示出在文档的令牌流中标题开始的位置,主体开始的位置等。 此处使用的静态特征是不依赖于查询的那些特征。例如,这些可包括页面排序、语言、总锚点计数和页面类型。在一个实施例中,存储在单个计算机或机器上的全部文档被组装在一起。对位置图的文档标识用于标识每个文档的起始位置。例如,如果需要具有标识“3”的文档,则可访问位置图的文档以确定文档在位置8500。如果访问该位置,则可发现压缩的令牌流和其他与该文档相关联的信息。进一步地,在一个例子中,可计算前向索引的大小,以便常规的匹配算法随时能够遍历(go through)全部的压缩令牌流并提取进行排序所需的特征。前向索引中与具体的文档相关联的每个条目可占据大约一至三个千字节(kB),从而有可能将文档和相关的信息放进更高效的存储系统内。在一些例子中,取决于文档的长度和复杂性,条目或文档可消耗超过3kB。如上所述,前向索引可被用作更大的对文档进行排序的处理的一部分。在一些实施例中,搜索引擎可采用分阶段的处理以选择搜索查询的搜索结果。例如,可以使用在多个处理阶段中评估和删除文档候选者的漏斗处理。每个都随着查询评估而前进的处理阶段变得越来越复杂。在一个实施例中,第一处理阶段利用通过原子(例如,字、术语)排序的反向索引来首先限制对于所接收的搜索查询是潜在最佳匹配的文档的数目。在这个实施例中, 然后,第二排序处理使用通过文档标识排序的前向索引,来进一步地将相关文档的数目削减至仅被发现相对于所接收的搜索查询而言是最相关的那些文档。在一个例子中,利用前向索引的第二排序处理也是排序处理中较昂贵的,因为其更耗时且更昂贵,因此用在已削减的一组文档上。更具体地,当接收搜索查询时,采用整体排序处理以将匹配文档的数量削减至易管理的大小时。当接收搜索查询时,分析搜索查询以标识原子。然后,在整体排序处理的各个处理阶段期间使用这些原子。这些处理阶段可被称为LO处理阶段(匹配处理阶段),来查询搜索索引(例如,反向索引)并标识包含来自搜索查询的原子的匹配文档初始集合。该初始处理可将候选文档的数目从搜索索引中索引的全部文档减少至匹配来自搜索查询的原子的那些文档。例如,搜索引擎可查遍数百万或甚至数百亿的文档,以确定与具体的搜索查询最相关的那些文档。一旦完成LO匹配处理阶段,候选文档的数目会显著地减少。然而, 定位最相关的文档的许多算法是成本高且耗时的。因此,可采用包括初步排序处理阶段和最终排序处理阶段两个其他处理阶段。初步排序处理阶段,也被称为Ll处理阶段,采用简化的评分功能,该评分功能用于为从上述LO匹配处理阶段保留的候选文档计算初步得分或排序。为从LO匹配处理阶段保留的每个候选文档提供初步排序。当与最终排序处理阶段相比较时,因为初步排序处理阶段仅采用最终排序处理阶段所使用的排序特征的子集,所以初步排序处理阶段被简化了。例如,初步排序处理阶段采用在最终排序处理阶段中使用的一个或多个(但很可能不是全部)的排序特征。另外,初步排序处理阶段可采用最终排序处理阶段未采用的特征。在本发明的实施例中,初步排序处理阶段使用的排序特征没有诸如术语紧密度和术语共存性之类的原子互依赖性。例如,仅为示例目的,在初步排序处理阶段中使用的排序特征可包括静态特征和动态孤立原子分量。一般地,静态特征是仅调查具有查询独立性的特征的那些分量。静态特征的例子包括页面排名、具体网络页面的垃圾评级等。动态孤立原子分量是仅查看每次与单个原子相关的特征的分量。例如,例子可包括BM25f,文档中某个原子的频率,文档中原子的位置(语境)(例如,标题、URL、锚点、头、主体、流量、类、属性)等。一旦已经通过初步排序处理阶段再次减少了候选文档的数目,最终排序处理阶段 (也被称为L2处理阶段)对初步排序处理阶段提供给其的候选文档进行排序。与在初步排序处理阶段中使用的排序特征相比,结合最终排序处理阶段使用的算法是利用更大数目的排序特征的、更昂贵的操作。然而,最终排序算法应用于少得多的候选文档。最终排序算法提供了一组排序文档,并基于该组排序文档提供响应于原始搜索查询的搜索结果。返回图2,可采用各种不同的算法来生成前向索引210以及利用前向索引210来排序文档。例如,示例算法可包括以下步骤中的一个或多个。首先,令牌图由已从用户接收的搜索查询中的全部原子建成。每个原子可用对应的优选的语境流标记。此处使用的语境流是与文档相关联的语境的各部分或类型,仅为示例目的,其可包括标题、锚点、标头、主体、流量、类、属性、URL等。一旦建成令牌图,扫描与具体文档相对应的前向索引条目的令牌流。当令牌匹配查询原子令牌图时,更新诸如数据结构之类的结构。该结构保留查询中的原子的令牌位置。在完成对前向索引条目的扫描时,完成具有查询中的每个原子的语境和位置的表格。对于要从前向索引提取的全部排序特征,位置图与在查询中注解的字典统计数一并使用,以提取用于排序计算的值。如所述,索引生成器206包括文档解析部件212、位置信息部件214、条目生成部件 216、搜索查询解析部件218和令牌匹配部件220。其他部件预期在本发明的范围内。一般地,文档解析部件212负责将文档解析为令牌以形成文档的令牌流。当正在生成文档的条目以存储在前向索引210中时,该文档被解析为令牌。令牌可代表单个的字母数字字符(例如,字母、数字、符号)或可代表字或短语。位置信息部件214根据相关数据在文档中的位置来确定位置信息。当数据被频繁地用于从前向索引中的条目的特征/数据提取时,该数据被认为是相关的。位置可包括从令牌流的起点至令牌流内的字符数。条目生成部件216负责在前向索引210中生成各单独的条目。例如,条目生成部件216可采用文档令牌流、文档标识、相关数据的位置信息和静态特征,并使用该信息生成具体文档的条目。当从用户接收搜索查询时,利用搜索查询解析部件218。当接收搜索查询时,可通过标识搜索查询中的原子并基于所标识的原子生成重新表述的查询来重新表述搜索查询。 更具体地,当经由用户接口接收搜索查询时,该查询从其自由文本形式重新表述为便于基于数据怎样在搜索索引中索引来查询搜索索引的格式。在实施例中,分析搜索查询的术语以标识可用于查询搜索索引的原子。可使用与当在搜索索引中索引文档时标识文档中的原子类似的技术(其可由文档解析部件212执行)来标识原子。例如,可基于术语的统计数据和查询分布信息来标识原子。可根据搜索查询生成查询令牌以便构造令牌图。最后,令牌匹配部件220扫描具体文档的令牌流,以标识匹配查询令牌的任何文档令牌。现在转向图3,示出了根据本发明实施例的前向索引中条目的示例数据结构300。 首先,图3的数据结构说明了各种数据字段。虽然在本发明范围内也预期多于或少于四个数据字段,但是这些数据字段一般地包括第一、第二、第三和第四数据字段。第一数据字段包括标识具体文档的文档标识信息。例如,图3说明了在“D0CID-T0-P0SITI0N”列310中的数个文档标识312。如位于最后列出的文档标识之下的椭圆所示,其仅是前向索引中会包含的文档标识的取样。每个文档标识可被认为是前向索引中的条目。在一个实施例中,每个条目具有指针,其指向存储设备中有关文档所定位的位置。这里,以上列出的典型地位于前向索引中的信息可能位于前向索引自身中,或可能位于存储器中且指针会指向该位置。如图3所示,对于前向索引中的每个文档标识条目,示出了附加信息314。可把文档看作是有属性的令牌流。例如,此处,包括文档的流偏移316和令牌流318。此处,图3的数据结构中的第二数据字段说明了文档的令牌流318,其是存储文档的字符或字以便容易检索的方式。在一个实施例中,对文档的每个字符进行令牌化,以便文档的每个字符有对应的令牌。在一个例子中,该令牌流318为了存储目的而被压缩。除令牌流318外,附加信息314包括流偏移316。如早先所述,可把文档划分成具有属性的令牌流。文档可被拆分成节,而每一节有其定义的令牌流。仅为示例目的,各种令牌可包括标题、锚点、标头、主体、流量、属性和URL。前向索引的条目中可包括这些中的一个或多个,以定义每个令牌类别在文档中的位置。例如,如图3所述,在流偏移316中,标题在令牌0处开始,因此人们会查看文档的最开始处以定位标题。进一步地,文档的主体在令牌 14开始,并且URL位于令牌950。这提供了对被指定为位于文档的某一部分(诸如标题、主体等)中的令牌进行定位的快速方式。在令牌流318中,从TO至TN示出每个令牌,N表示文档中的最后令牌,其因文档而不同。尽管在一个实施例中,针对以上列出的文档的一个或多个节,前向索引中包括分离的令牌流,但在替代实施例中,包括流偏移(如图3所示)而没有分离流。文档的标题是举出文档的标题的令牌流。对于HTML文档,这可映射至标题标签。 锚点包括通过外部计算确定的在页面上登陆的全部锚文本。标头是在文档内的头部。主体是除了其标题、锚点和标头之外的全部文档。流量是用于文档的外部信号和内容的流。其主要用于点击文本信号和来自流量分析的匹配扩展器。类是用于利用分类器输出来对文档加标签的流或被映射至该流的语言或区域分类。属性是针对文档配对使用(标签,整数)的流,以有效地执行对属性的范围查询。URL是页面的实际URL并被认为是特别的流。在一个实施例中,虽然图3中未示出,前向索引的条目的数据结构中包括了第三数据字段。第三数据字段包含文档特定数据,该文档特定数据代表了当接收查询时可用于排序文档的文档的静态特征。仅为示例目的,静态特征可包括文档的页面排名、文档的语言、总锚点计数和页面类型等。更进一步地,数据结构中可包括包含位置信息的第四数据字段(未示出),该位置信息指示与被频繁地用于计算文档排序的一个或多个与文档相关联的相关数据的位置。可以每一文档地提供字典,该字典可包括最通常的原子及其各自的位置来作为表格,以潜在地加速对与各位置相关联的排序值的检索。图4是示出了生成在前向索引中的条目的方法400的流程图。如所述,前向索引包含通过文档标识排序的多个条目。首先,在步骤410,接收文档和对应于文档的文档标识。 可预分配文档标识或一旦接收该文档时分配文档标识。该文档标识可以是随机的或唯一的标识,或可多少与文档相关(例如,文档类型,接收日期)。在步骤412,接收与文档相关联的静态特征。静态特征是与任何搜索查询无关的那些特征。仅为示例目的,这些特征可包括与文档相关的页面排名、文档的语言、总锚点计数和页面类型(例如,信息性、娱乐、白皮书)。 在步骤414,该文档被解析为令牌。此处,文档的各令牌形成文档的令牌流。在一个实施例中,令牌流被压缩。在又一实施例中,可标识对应于文档的一个或多个语境流。仅为示例目的,这些语境流可包括对应于该文档的标题、锚点、标头、主体、流量、类、属性和URL。在步骤416,确定相关数据的位置信息。根据相关数据在文档中的位置确定该位置信息。在一些例子中,该相关数据被频繁地使用并从前向索引提取来基于查询排序文档, 因此,在前向索引中标注该数据的位置。在一个实施例中,位置信息是指向具体的相关数据的在存储设备中的位置的指针。在另一实施例中,位置信息是该具体数据在令牌流中的位置。例如,如这里所述,位置信息可包括具体原子在具体文档中的相对位置,以便可以计算文档中两个原子之间(例如,相同原子)的距离并用于排序。在步骤418,生成条目。根据文档标识、文档的令牌流、静态特征和位置信息生成条目。如图3所示,前向索引由多个条目组成并可采用数据结构的形式。在步骤420,将在步骤418生成的条目存储在前向索引中。 在一个实施例中,该数据在存储设备中被压缩了。如图5所示,示出了方法500的流程图,该方法用于基于搜索查询,使用前向索引来提取用于排序文档的信息。如前所述,前向索引是通过文档或文档标识组织或排序的索引。首先,在步骤510,接收搜索查询。在步骤512,解析搜索查询以标识一个或多个原子。 在一个实施例中,每个原子用优选的语境流(如果指定了的话)来标记。这些语境流可包括标题、锚点、标头、主体、类、属性或URL中的一个或多个。如所述,此处使用的原子或原子单位可指查询或文档的各种单位。例如,这些单位可包括术语、η元语法(n-gram)、η元组(n-tup 1 e )、k接近η元组(k-near η-tup 1 e )等。如所使用的具体令牌化技术定义的那样,术语向下映射到单个符号或字。在一个实施例中,术语是单个字符。在另一实施例中,术语是单个字或字组。η元语法(n-gram)是可从文档提取的一系列η个连续的或几乎连续的术语。如果η元语法(n-gram)对应于一连串的连续术语, 则η元语法(n-gram)可以说是“紧的”,如果η元语法(n-gram)包含按照术语在文档中出现的顺序的术语但术语不必地是连续的,则η元语法(n-gram)可以说是“松的”。松的η元语法(n-gram)典型地用于表示一类等同意义的短语,这些短语中不重要的字有所不同(例如, “如果下雨我会淋湿的”和“如果下雨则我会淋湿的”)。此处使用的η元组(n-tuple)是文档中同时出现(顺序无关)的一组“η”术语。进一步地,此处使用的k接近η元组(k-near n-tuple)指在文档中的“k”个术语的窗口内同时出现的一组“η”术语。因此,原子一般地被定义为上述全部的概称。本发明实施例的实现可使用不同的原子种类,但是,此处使用的原子总体上描述上述种类中的每一个。在步骤514,根据在步骤512处从搜索查询解析的原子,创建查询令牌的令牌图。这样,从查询解析的原子被令牌化为一系列的令牌。在一个实施例中,令牌图也包括一个或多个查询令牌的具体语境。对于第一文档,扫描对应于前向索引中的第一文档的条目中的文档令牌,以确定是否有任何查询令牌匹配文档令牌。在步骤516,在前向索引中,从对应于第一文档的令牌流中标识匹配令牌图中的查询令牌的文档令牌。在步骤518,用匹配的令牌更新数据结构。在一个例子中,利用每个匹配的令牌在第一文档的令牌流中的位置来更新数据结构。然后,在步骤520,利用数据结构中的数据,从前向索引的第一条目中提取用于排序计算的排序信息。第一条目与第一文档相关联。排序信息可包括与匹配查询图中的查询令牌的文档令牌相对应的、第一文档的令牌流中的位置。在一个实施例中,根据上述涉及图5描述的步骤来索引其他文档。例如,对于第二文档,可在第二文档的令牌流中标识与令牌图中的查询令牌相匹配的文档令牌。对于那些匹配的文档令牌,用每个文档令牌在第二文档的令牌流中的位置来更新数据结构。利用数据结构中的数据,可从与第二索引相关联的前向索引中的第二条目提取排序信息。该第二条目与第二文档相关联。如前所述,在又一实施例中,基于搜索查询使用前向索引来提取用于排序文档的信息,这可以为整体排序处理中的第二甚至第三处理阶段。例如,假定前向索引通过文档索引(例如,文档标识),可能已预先地在排序处理的先前处理阶段处标识了多个文档,以便先前处理阶段可能已将一个或多个文档标识为与搜索查询相关。如此处所述,这些文档是使用存储在前向索引中的信息进行进一步地处理的那些文档。已经参照具体实施例描述了本发明,其意图在所有方面中是例示性的而非限制性的。对于本发明所属领域的技术人员而言,替代实施例将变得清楚而不脱离其范围。综上所述,将看到,本发明较好地适用于实现上述全部目标,具有该系统和方法的显著和固有的其他优势。将理解,某些特征和子组合是有用的并可被采用而与其他特征和子组合无关。这根据权利要求的范围是可预期的并且在权利要求的范围之内。
1权利要求
1.一种生成前向索引中的条目的方法,所述方法包括 接收(410)文档和相应的文档标识;接收(412)与所述文档相关联的一个或多个静态特征,其中所述一个或多个静态特征与搜索查询无关;将所述文档解析(414)为令牌,以形成所述文档的令牌流; 根据一个或多个相关数据在所述文档中的位置,确定(416)位置信息; 根据所述文档标识、所述文档的令牌流、所述静态特征和所述位置信息来生成(418)条目;以及在前向索引中存储(420)所述条目。
2.如权利要求1所述的方法,进一步包括标识对应于所述文档的一个或多个语境流, 其中所述一个或多个语境流包括以下中的一个或多个标题、锚点、标头、主体、流量、类、属性和统一资源定位符(URL)。
3.如权利要求1所述的方法,其中所述一个或多个相关的数据在响应于接收搜索查询而计算文档的排序中频繁地使用。
4.如权利要求1所述的方法,其中所述条目是数据结构。
5.如权利要求1所述的方法,其中确定所述位置数据,以便当提交搜索查询并确定结果时能容易地访问所述一个或多个相关的数据。
6.如权利要求1所述的方法,进一步包括 接收搜索查询;接收与所生成的前向索引中的条目相关联的文档与所述搜索查询相关的指示,其中通过使用由原子索引的反向索引来确定所述相关性;创建搜索查询的令牌图,所述令牌图包括各查询令牌;扫描所述文档的令牌流,以标识是否有任何文档令牌匹配任何查询令牌;以及用任何匹配的令牌流中的位置来更新数据结构。
7.一种用于使用前向索引提取用于基于搜索查询来对文档排序的信息的方法,所述方法包括接收(510)搜索查询;解析(512)所述搜索查询,以标识一个或多个原子;使用从所述搜索查询解析的一个或多个原子,创建(514)查询令牌的令牌图; 对于第一文档,在前向索引的第一条目中标识(516)在对应于第一文档的令牌流中、匹配所述令牌图中的查询令牌的各文档令牌;对于匹配查询令牌的各文档令牌,用所述匹配查询令牌的每个文档令牌在对应于第一文档令牌流中的位置来更新数据结构;以及利用所述数据结构中的数据,从所述前向索引的第一条目提取(520)用于排序计算的排序信息。
8.如权利要求7所述的方法,进一步包括用优选的语境流标记所述一个或多个原子中的每一个。
9.如权利要求7所述的方法,其中所述语境流是以下中的一个或多个标题、锚点、标头、主体、流量、类、属性和统一资源定位符(URL)。
10.如权利要求7所述的方法,其中所述排序信息包括对应于匹配令牌图中的一个或多个查询令牌的文档令牌的、第一文档的令牌流中的位置。
11.如权利要求7所述的方法,进一步包括对于第二文档,在所述前向索引的第二条目中标识匹配令牌图中的查询令牌的、在对应于第二文档的令牌流中的各文档令牌;对于匹配查询令牌的各文档令牌,用每个文档令牌在对应于第二文档的令牌流中的位置来更新数据结构;以及利用所述数据结构中的数据,从所述前向索引的第二条目中提取用于排序计算的排序 fn息ο
12.如权利要求7所述的方法,其中在标识第一文档中的各文档令牌之前,初步地发现与搜索查询相关的第一文档。
13.如权利要求7所述的方法,其中所述第一条目与第一文档相关联。
14.如权利要求7所述的方法,进一步包括接收多个文档标识,这些文档标识与先前已确定为与所接收的搜索查询相关的各文档相关联,其中通过由原子索引的反向索引的方式来确定多个文档的先前相关性。
15.—个或多个计算机存储介质,其上存储有数据结构,该数据结构存储了代表用于基于搜索查询来排序搜索结果的前向索引的数据,该数据结构包括包含标识具体文档的文档标识信息的第一数据字段(310);包含所述文档的压缩令牌流的第二数据字段(318);包含文档特定数据的第三数据字段(316),该文档特定数据代表了用于在接收查询时排序所述文档的文档的静态特征;包含位置信息的第四数据字段(312),该位置信息指示了与被频繁地用于计算所述文档排序的、一个或多个与所述文档相关联的相关数据的位置。
16.一种计算机存储介质,其上存储有计算机可执行指令,当所述指令在计算设备上执行时,导致该计算设备执行如权利要求1-14中的任一个所述的方法。
全文摘要
本发明涉及搜索引擎的有效前向排序,其中提出了用于生成前向索引中的用于文档的条目的方法和计算机存储介质。除查询无关的静态特征之外,还接收文档和其文档标识。文档被解析为令牌,以形成对应于文档的令牌流。标识用于计算文档排序的相关数据并确定数据的位置。然后根据文档标识、文档的令牌流、静态特征和相关数据的位置信息生成条目。将条目存储在前向索引中。
文档编号G06F17/30GK102402604SQ20111037339
公开日2012年4月4日 申请日期2011年11月22日 优先权日2010年11月22日
发明者P. 沃特斯 C., G. 贝内特 J., O. 彼得森 J., M. 里斯维克 K., 卡亚纳拉曼 K., 霍普克罗夫特 M., 基林比 T., 帕里克 V. 申请人:微软公司