CN102402605A - 用于搜索引擎索引的混合分布模型 - Google Patents

用于搜索引擎索引的混合分布模型 Download PDF

Info

Publication number
CN102402605A
CN102402605A CN2011103733975A CN201110373397A CN102402605A CN 102402605 A CN102402605 A CN 102402605A CN 2011103733975 A CN2011103733975 A CN 2011103733975A CN 201110373397 A CN201110373397 A CN 201110373397A CN 102402605 A CN102402605 A CN 102402605A
Authority
CN
China
Prior art keywords
document
index
collection
node
fragment
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.)
Granted
Application number
CN2011103733975A
Other languages
English (en)
Other versions
CN102402605B (zh
Inventor
K.M.里斯维克
M.霍普克罗夫特
J.贝内特
K.卡亚纳拉曼
T.基林比
C.P.沃特斯
V.帕里克
J.O.彼得森
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN102402605A publication Critical patent/CN102402605A/zh
Application granted granted Critical
Publication of CN102402605B publication Critical patent/CN102402605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了用于搜索引擎索引的混合分布模型,并且还提供了基于搜索查询使用混合分布系统来识别相关文档的方法和系统。为特定片段指定文档群组。所述文档群组由原子和文档索引,从而形成倒排索引和正排索引。全部两项索引被划分在该片段中的每一个节点当中,从而使得每一个节点负责存储及访问倒排索引和正排索引二者的不同部分。在第一节点集合当中的每一个节点上访问倒排索引部分,以便识别出与特定搜索查询相关的第一文档集合。使用与第一文档集合相关联的文档标识来识别出第二节点集合,所述第二节点集合访问其正排索引部分以便把相关文档的数目限制到第二文档集合。

Description

用于搜索引擎索引的混合分布模型
背景技术
可以在因特网上获得的信息和内容的数量持续快速增多。在海量信息的情况下,已经开发出搜索引擎以便于搜索电子文档。具体来说,用户可以通过输入包括其可能感兴趣的一项或更多项的搜索查询来搜索信息和文档。在接收到来自用户的搜索查询之后,搜索引擎基于搜索查询识别出相关的文档和/或网页。由于其实用性,web搜索(即针对用户发出的搜索查询找到相关的网页和文档的处理)可证明地已经成为当今因特网上的其中一项最为普及的服务。
此外,搜索引擎通常使用一步处理,其基于所接收到的搜索查询利用搜索索引识别出相关文档以便返回给用户。但是搜索引擎排序功能已经变成非常复杂的功能,如果其被用于所索引的每一个文档的话可能不仅费时而且代价高昂。此外,对于这些复杂的公式所需要的数据存储也可以会带来问题,特别当以通常由单词或短语索引的倒排索引存储时尤其如此。当以倒排索引存储时,提取对于复杂公式所需的相关数据的效率很低。
发明内容
提供本概要是为了以简化形式介绍所选概念,下面在具体实施部分中将对其进行进一步的描述。本概要不意图标识所要求保护的主题内容的关键特征或实质特征,也不意图被用来帮助确定所要求保护的主题内容的范围。
本发明的实施例涉及在相同的节点集合上采用原子碎片化(sharded)和文档碎片化分布二者,从而使得每一个节点或机器存储倒排索引的一部分(其例如由原子碎片化)和正排索引的一部分(其例如由文档碎片化)。可以为片段指定其所负责的文档群组。所述文档群组由原子和文档二者索引,从而存在与该文档群组相关联的倒排索引和正排索引。每一个片段包括多个节点,并且可以为每一个节点指定倒排和正排索引二者的不同部分。此外,每一个节点负责利用存储在其上的倒排和正排索引部分二者执行多项排序计算。举例来说,初步排序处理可以利用倒排索引,并且最终排序处理可以利用正排索引。这些排序处理形成被采用来基于所接收到的搜索查询识别最具相关性的文档的总体排序处理。
附图说明
下面将参照附图详细描述本发明,其中:
图1是适用于实施本发明的实施例的示例性计算环境的方框图;
图2是可以在其中采用本发明的实施例的示例性系统的方框图;
图3是根据本发明的实施例的混合分布系统的示例图;
图4是根据本发明的实施例的示出了有效载荷要求的混合分布系统的示例图;
图5是示出了根据本发明的实施例的用于根据搜索查询利用混合分布系统来识别相关文档的方法的流程图;
图6是示出了根据本发明的实施例的用于为多处理文档检索系统生成混合分布系统的方法的流程图;以及
图7是示出了根据本发明的实施例的用于根据搜索查询利用混合分布系统来识别相关文档的方法的流程图。
具体实施方式
在这里将详细描述本发明的主题内容以满足法定要求。但是这里的描述本身不意图限制本专利的范围。相反,本发明的发明人已经设想到还可以按照其他方式来具体实现所要求保护的主题内容,以便与其他的现有或未来技术相结合地包括与本文献中所描述的类似的不同步骤或步骤组合。此外,虽然在这里可以使用术语“步骤”和/或“方框”来指代所采用的方法的不同元素,但是除非明确地描述各个单独步骤的顺序,否则所述术语不应被解释为意味着这里所公开的各个步骤当中或之间的任何特定顺序。
如前所述,本发明的实施例提供形成片段的各个节点以便分别存储用于该片段的倒排索引和正排索引的一部分。举例来说,在将要索引的文档总量(例如一万亿)当中,可以为每一个片段分配特定文档部分,从而使得该片段负责对这些文档进行索引并且执行排序计算。存储在该特定片段上的倒排索引和正排索引的所述部分是关于被指定给该片段的文档的完整倒排和正排索引。每一个片段由多个节点构成,所述节点实质上是具有存储能力的机器或计算设备。为片段中的每一个节点指定倒排索引和正排索引的独立部分,从而使得可以采用每一个节点来执行各种排序计算。因此,每一个节点已经在其上存储所述片段的倒排索引和正排索引的子集,并且负责在该片段内的各种排序处理中访问其中的每一项。举例来说,总体排序处理可以包括匹配阶段、初步排序阶段和最终排序阶段。匹配/初步阶段可能需要采用其倒排索引对来自搜索查询的特定原子进行了索引的那些节点来识别与搜索查询相关的第一文档集合。第一文档集合是来自被分配给所述片段的文档的文档集合。随后可以采用其正排索引对与第一文档集合中的某一文档相关联的文档标识进行了索引的那些节点来识别与搜索查询相关性更高的第二文档集合。在一个实施例中,第二文档集合是第一文档集合的子集。这一总体处理可以被采用来把文档集合限制到被发现具有相关性的那些文档,从而采用通常比初步排序处理更加耗时并且成本更高的最终排序处理来对与不管相关与否都对索引中的每一个文档进行排序的情况相比较少的文档进行排序。
相应地,在一个方面,本发明的一个实施例是针对存储计算机可用指令的一种或更多种计算机存储介质,当由计算设备使用时,所述计算机可用指令使得计算设备执行一种基于搜索查询利用混合分布系统来识别相关文档的方法。所述方法包括:为片段分配文档群组,所述文档群组在倒排索引中由原子索引并且在正排索引中由文档索引;以及在形成所述片段的多个节点当中的每一个节点上存储倒排索引和正排索引的不同部分。此外,所述方法还包括:访问存储在第一节点集合当中的每一个节点上的倒排索引部分,以便识别与搜索查询相关的第一文档集合。所述方法附加地还包括:基于与第一文档集合相关联的文档标识,访问存储在第二节点集合当中的每一个节点上的正排索引部分,以便把第一文档集合中的相关文档的数量限制到第二文档集合。
在另一个实施例中,本发明的一方面是针对存储计算机可用指令的一种或更多种计算机存储介质,当由计算设备使用时,所述计算机可用指令使得计算设备执行一种为多处理文档检索系统生成混合分布系统的方法。所述方法包括:接收关于被指定给片段的文档群组的指示,所述片段包括多个节点。对于所述片段,所述方法还包括:通过原子索引所分配的文档群组以便生成倒排索引,并且通过文档索引所分配的文档群组以便生成正排索引。所述方法附加地还包括:将倒排索引的一部分和正排索引的一部分指定给形成所述片段的多个节点当中的每一个,从而使得所述多个节点当中的每一个存储正排索引的不同部分和倒排索引的不同部分。
本发明的另一个实施例是针对存储计算机可用指令的一种或更多种计算机存储介质,当由计算设备使用时,所述计算机可用指令使得计算设备执行一种基于搜索查询利用混合分布系统来识别相关文档的方法。所述方法包括:接收搜索查询;识别搜索查询中的一个或更多原子;以及向分别被指定由原子和文档二者索引的文档群组的多个片段传送所述一个或更多原子,从而使得在所述多个片段当中的每一个片段处生成并存储倒排索引和正排索引。所述多个片段当中的每一个由多个节点构成,所述节点分别被指定正排索引和倒排索引的一部分。基于所述一个或更多原子,所述方法在第一片段处识别出其倒排索引部分包含来自搜索查询的所述一个或更多原子当中的至少一个的第一节点集合。此外,所述方法还包括:访问存储在第一节点集合当中的每一个节点处的倒排索引部分,以便识别出被发现与所述一个或更多原子相关的第一文档集合;以及基于与第一文档集合相关联的文档标识,识别出其正排索引部分包含与第一文档集合相关联的其中一个或更多文档标识的第二节点集合。所述方法还包括:访问存储在第二节点集合当中的每一个节点处的正排索引部分,以便识别出作为第一文档集合的子集的第二文档集合。
在简要描述了本发明的实施例的总览之后,下面将描述可以在其中实施本发明的实施例的示例性操作环境,以便提供对应于本发明的各个方面的一般情境。首先特别参照图1,其中用于实施本发明的实施例的示例性操作环境被示出并且总体上标记为计算设备100。计算设备100仅仅是适当的计算环境的一个示例,其不意图暗指对于本发明的使用范围或功能的任何限制。计算设备100也不应当被解释为具有与所示出的任一个组件或组件组合有关的任何依赖性或要求。
可以在计算机代码或机器可用指令的一般情境中描述本发明,其中包括诸如程序模块之类的计算机可执行指令,其由计算机或其他机器执行,比如个人数字助理或其他手持式设备。一般来说,包括例程、程序、对象、组件、数据结构等等的程序模块指代执行特定任务或者实施特定抽象数据类型的代码。可以在多种系统配置中实践本发明,其中包括手持式设备、消费电子设备、通用计算机、更加专业的计算设备等等。还可以在分布式计算环境中实践本发明,其中各项任务由通过通信网络链接的远程处理设备执行。
参照图1,计算设备100包括直接或间接地耦合以下设备的总线110:存储器112、一个或更多处理器114、一个或更多呈现组件116、输入/输出(I/O)端口118、输入/输出组件120以及说明性电源122。总线110代表一种或更多种总线(比如地址总线、数据总线或其组合)。虽然图1的各个方框出于简单起见是用线条示出的,但是在实际情况中各个组件的边界并不是如此明确的,并且比方来说所述线条更准确地将是灰色且模糊的。举例来说,可以把诸如显示设备之类的呈现组件视为I/O组件。此外,处理器具有存储器。本发明的发明人认识到这正是本领域的性质,并且重申图1的图示仅仅是为了说明可以结合本发明的一个或更多实施例使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等等之间不做区分,这是因为所有这些都被设想在图1的范围内并且被称作“计算设备”。
计算设备100通常包括多种计算机可读介质。计算机可读介质可以是能够由计算机设备100访问的任何可用介质,其包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括在用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术中所实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储设备或者可以被用来存储所期望的信息并且可以由计算设备100访问的任何其他介质。通信介质通常在诸如载波之类的已调数据信号或其他传输机制中具体实现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“已调数据信号”是指其一项或更多项特性被设定或改变来在其中编码信息的信号。作为示例而非限制,通信介质包括诸如有线网络或直接布线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。任何前述内容的各种组合也应当被包括在计算机可读介质的范围内。
存储器112包括具有易失性和/或非易失性存储器的形式的计算机存储介质。所述存储器可以是可移除的、不可移除的或者其组合。示例性的硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等等。计算设备100包括从诸如存储器112或者I/O组件120之类的各种实体读取数据的一个或更多处理器。(多个)呈现组件116向用户或其他设备呈现数据指示。示例性的呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
I/O端口118允许计算设备100逻辑地耦合到包括I/O组件120在内的其他设备,其中一些可以是内建的。说明性组件包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、打印机、无线设备等等。
现在参照图2,该图提供了示出可以在其中采用本发明的实施例的示例性系统200的方框图。应当理解的是,这里所描述的该种设置和其他设置仅仅是作为示例来阐述的。作为所示设置和元件的补充或替换可以使用其他设置和元件(例如机器、接口、功能、顺序以及功能分组等等),并且可以完全省略某些元件。此外,这里所描述的许多元件是可以被实施为分立或分布式组件或者结合其他组件实施并且以任何适当组合和位置实施的功能实体。在这里被描述为由一个或更多实体执行的各项功能可以由硬件、固件和/或软件实施。举例来说,各项功能可以由执行存储在存储器中的指令的处理器实施。
在未示出的其他组件当中,系统200包括用户设备202、片段204以及混合分布系统服务器206。图2中所示的每一个组件可以是任何类型的计算设备,比如例如参照图1描述的计算设备100。各个组件可以通过网络208彼此通信,所述网络可以包括(而不限于)一个或更多局域网(LAN)和/或广域网(WAN)。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。应当理解的是,在本发明的范围内,在系统200内可以采用任意数目的用户设备、片段以及混合分布系统服务器。其中的每一项可以包括单个设备或者在分布式环境中协作的多个设备。举例来说,所述片段可以包括设置在分布式环境中的多个设备,其共同提供这里所描述的片段204的功能。此外,在系统200内还可以包括未示出的其他组件,而在某些实施例中则可以省略图2中所示的组件。
用户设备202可以是由可以访问网络208的末端用户所拥有和/或操作的任何类型的计算设备。举例来说,用户设备202可以是台式计算机、膝上型计算机、平板计算机、移动设备或者具有网络接入的任何其他设备。一般来说,末端用户可以特别采用用户设备202来通过向搜索引擎提交搜索查询而访问电子文档。举例来说,末端用户可以采用用户设备202上的web浏览器来访问并查看存储在系统中的电子文档。
片段204通常包括多个节点,其也被称作叶片。在图2中示出了两个节点,其中包括编号为210的节点1和编号为212的节点2。虽然在图2的实施例中示出了两个节点,但是各个片段可以包括远多于两个节点(例如10、40、100个)。两个节点仅仅是出于示例性的目的而示出的。每一个片段(比如片段204)被分配其所负责的文档群组。这样,在片段204处生成并存储倒排索引和正排索引。虽然可以在片段204本身处生成用于该特定片段的倒排索引和正排索引,但是在一个替换实施例中,可以在某一其他位置处或者在某一其他计算设备上生成所述索引并且将其发送到片段204。此外,一旦基于被分配给片段204的文档群组生成倒排索引和正排索引,就把全部两项索引分成各个部分。在一个实施例中,所述部分的数目等于与特定片段相关联的节点的数目。因此,在特定片段中有40个节点的情况下,全部两项索引都被分成40个部分,从而使得每一个节点负责倒排索引和正排索引当中的每一项的不同部分。如图所示,节点1具有倒排索引部分214和正排索引部分216。节点2也具有倒排索引部分218和正排索引部分220。虽然被显示为与节点分开,但是在一个实施例中,所述索引被存储在节点本身之上。在任何情况下,每一个节点都负责基于被指定给该片段的文档群组而被索引的倒排索引和正排索引的一部分。
如前所述,索引可以通过原子来索引或碎片化(倒排索引)或者通过文档来碎片化(正排索引)。这里所使用的碎片化(sharding)指的是通过原子或文档对文档集合进行索引的处理。单独利用每一种方法而不利用另一种有其优点和缺点。举例来说,当通过文档碎片化时,优点包括各个碎片之间的处理隔离,从而只需要合并结果即可。此外,每文档的信息很容易与匹配对准。另外,网络通信量较小。与此相对,缺点包括需要每一个碎片来处理任何特定查询。如果将倒排索引数据放置在一张盘上,则对于N个碎片上的K原子查询需要最少O(KN)次盘寻找。当通过原子碎片化时,优点包括减少了计算,从而只需要K个碎片来处理K原子查询。如果将倒排索引数据放置在一张盘上,则对于K原子查询需要O(K)次盘寻找。但是与此相对,缺点包括需要连接的处理,从而存储参与查询的原子的所有碎片都需要合作。除了每文档的信息不容易管理之外,网络通信量也很大。本发明的实施例与传统方法相比需要对每文档数据的较少管理。造成这一结果的原因包括预先计算了一些分数并且在诸如倒排索引的索引中进行评分,并且对于文档的进一步细化和过滤也在匹配阶段(L0)之后发生。因此,在对于每文档数据的管理方面,前面所描述的缺点被大大减少。
此外,特定片段中的每一个节点都能够执行各种功能,包括允许识别相关搜索结果的排序功能。在一些实施例中,搜索引擎可以采用分级处理来选择用于搜索查询的搜索结果。在这里,每一个节点可以能够采用总体排序处理的多个级。下面将描述一个示例性排序处理,但是其仅仅是可以由每一个节点采用的排序处理的一个示例。当接收到搜索查询时可以执行总体排序处理,以便把匹配文档的数量减少到可管理的大小。当接收到搜索查询时,对搜索查询进行分析以便识别出原子。随后可以在总体排序处理的各级期间使用所述原子。这些级可以被称作L0级(匹配级),其用来查询搜索索引并且识别出包含来自搜索查询的原子的初始匹配文档集合。这一初始处理可以把来自搜索索引中所索引的所有文档的候选文档的数目减少到与来自搜索查询的原子相匹配的那些文档。举例来说,搜索引擎可能搜索成百万或者甚至成万亿的文档以确定与特定搜索查询最具相关性的文档。一旦L0匹配级完成之后,候选文档的数目就大大减少。但是用于找到最具相关性的文档的许多算法都耗时并且成本高。因此,可以采用两个其他级,其中包括初步排序级和最终排序级
初步排序级也被称作L1级,其采用简化评分功能,所述简化评分功能被用来为从前面所描述的L0匹配级保留下来的候选文档计算初步分数或排序。因此初步排序组件210负责为从L0匹配级保留下来的每一个候选文档提供初步排序。可替代地,可以为候选文档评分,从而给出绝对数字而不是排序。与最终排序级相比,初步排序级被简化,这是因为其仅仅采用由最终排序级所使用的排序特征的子集。举例来说,在最终排序级中所使用的其中一项或更多项(但是在一些实施例中并非所有的)排序特征被初步排序级所采用。此外,最终排序级没有采用的特征也可以被初步排序级所采用。在本发明的实施例中,初步排序级所使用的排序特征没有原子相依性,比如项目接近性和项目共生性。仅仅出于示例性目的,在初步排序级中所使用的排序特征例如可以包括静态特征和动态原子隔离分量。静态特征通常是仅仅关注独立于查询的特征的那些分量。静态特征的示例包括页面排序、特定网页的垃圾信息评定等等。动态原子隔离分量是每次仅仅关注与单个原子有关的特征的分量。示例可以包括例如BM25f、特定原子在文档中的频率、原子在文档中的位置(情境)(例如标题、URL、锚点、标题、主体、流量、分类、属性)等等。
一旦通过初步排序级再次减少候选文档的数目,最终排序级(其也被称作L2级)就对由初步排序级为之提供的候选文档进行排序。与用在初步排序级中的排序特征相比,结合最终排序级使用的算法是具有数目更多的排序特征的更加昂贵的操作。但是最终排序算法被应用于数目少得多的候选文档。最终排序级算法提供已排序文档集合,并且根据所述已排序文档集合响应于原始搜索查询而提供搜索结果。在一些实施例中,这里所描述的最终排序级可以采用正排索引。
回到图2,混合分布系统服务器206由文档分配组件222、查询解析组件224、查询分布组件226和结果合并组件228构成。文档分配组件222通常负责向被用在给定排序系统中的各个片段分配文档。仅仅出于示例性目的,如果需要索引1亿个文档并且有100个片段可用,则可以为每一个片段分派100万个文档。或者在更大的尺度上,如果需要索引1万亿个文档并且有10万个片段可用,则可以为每一个片段分派1000万个文档。可以如前面的示例所表明的那样均匀地在各个片段之间分派文档,或者可以按照不同的方式划分,从而使得每一个片段所负责的文档数目不完全相同。
当通过用户设备202上的用户接口接收到搜索查询时,查询解析组件224例如操作来重新制定所述查询。基于如何在搜索索引中对数据进行索引,将所述查询从其自由文本形式重新制定成便于对诸如倒排索引和正排索引之类的搜索索引进行查询的格式。在各实施例中,对搜索查询的各项进行解析及分析,以便识别出可以被用来查询搜索索引的原子。识别所述原子所使用的技术可以类似于在搜索索引中对文档进行索引时被用来识别文档中的原子的技术。举例来说,可以基于项目统计量和查询分布信息来识别原子。查询解析组件224可以提供原子联结集合以及这些原子的级联变体。
这里所使用的原子或原子单元可以指代查询或文档的多种单元。这些单元例如可以包括项目、n元语法、n元组、k邻近n元组等等。项目向下映射到由所使用的特定令牌化器技术定义的单个符号或单词。在一个实施例中,项目是单个字符。在另一个实施例中,项目是单个单词或单词分组。n元语法是可以从文档中提取的由“n”个接连的或几乎接连的项目构成的序列。如果其对应于一系列连续项目则说n元语法是“紧密的”,并且如果其按照各个项目出现在文档中的顺序包含所述项目但是所述项目不一定是接连的,则说n元语法是“松散的”。松散的n元语法通常被用来代表一类等效短语,所述短语只有无关紧要的单词不同(例如“如果下雨我就会变湿”和“如果下雨则我就会变湿”)。这里所使用的n元组是由共同出现(与顺序无关)在文档中的“n”个项目构成的集合。此外,这里所使用的k邻近n元组指代在文档中的由“k”个项目构成的窗口内共同出现的由“n”个项目构成的集合。因此,原子通常被定义为所有上述内容的一般化。本发明的各个实施例的实现方式可以使用不同种类的原子,但是这里所使用的原子通常描述前述各类当中的每一类。
查询分布组件226实质上负责接收所提交的搜索查询并且将其分布在各个片段当中。在一个实施例中,每一项搜索查询被分布到每一个片段,从而使得每一个片段提供初步搜索结果集合。举例来说,当片段接收到搜索查询时,该片段或者该片段内的组件确定将为哪些节点分派利用存储在所述节点上的倒排索引部分执行初步排序功能的任务。在一种情况下,作为第一节点集合的一部分的所选节点是其倒排索引已经索引了从搜索查询中解析出的一个或更多原子的那些节点,正如前面所描述的那样。因此,当重新制定搜索查询时,识别出一个或更多原子并且将其发送到每一个片段。第一节点集合当中的每一个节点基于初步排序功能返回被发现与搜索查询相关的第一文档集合,正如前面简要描述的那样。随后确定第二节点集合。在一个实施例中,这些节点当中的每一个都在其对应的正排索引中存储了第一文档集合当中的至少一个文档。第二节点集合当中的每一个节点利用正排索引数据和其他考虑因素执行最终排序功能,并且作为结果识别出第二文档集合。在一个实施例中,第二集合当中的每一个文档都被包括在第一集合中,因为在最终排序级中使用了与第一文档集合相关联的文档标识。
为结果合并组件228提供来自每一个片段的搜索结果(例如文档标识和摘录),并且从这些结果形成合并的最终搜索结果列表。有多种方式用以形成最终搜索结果列表,其中包括简单地去除任何重复文档并且按照由最终排序确定的顺序将每一个文档放入列表中。在一个实施例中,在每一个片段上都存在类似于结果合并组件228的组件,从而在该片段处把由每一个节点产生的结果合并到单个列表中,并且随后把所述列表发送到结果合并组件228。
现在参照图3,图中示出了根据本发明的实施例的混合分布系统300的示例图。图3示出了各个组件,其中包括语料库管理器310、语料库根部312以及两个片段,即片段314和片段316。可以提供多于两个片段,正如省略号318所表明的那样。语料库管理器310保持哪些处理服务于正排索引和倒排索引的哪一个碎片的状态。其还保持每一个处理的温度和状态。该数据被用来生成用于将查询向外联合到不同片段的处理集合。语料库根部312是顶层根部处理,其还执行查询规划功能。语料库根部312将把查询分散到所有所需片段上并且收集、合并结果,其可以包括定制逻辑。每一个片段具有片段根部,比如片段根部320和片段根部322。片段根部充当用于联合查询并且聚集来自所联合的处理的结果的处理。片段根部322可能是被重新指定给对于最终查询组配来说最优的叶片或节点的动态处理。
如图所示,每一个片段根部包括多个节点。由于空间约束,对于片段根部320和片段根部332示出了三个节点。片段根部320包括节点322、节点324和节点326。省略号328表明在本发明的范围内可以设想多于三个节点。片段根部334包括节点334、节点336和节点338。由于可以由任意数目的节点构成片段根部,因此省略号340表明任意附加数量的节点。如前所述,每一个节点是能够执行多项计算(比如排序功能)的机器或计算设备。举例来说,在一个实施例中,每一个节点包括L01匹配器322A和L2排序器322B,正如在节点322处所示出的那样。类似地,节点334包括L01匹配器334A和L2排序器334B。这些内容在前面做了更加详细的描述,但是总体排序处理的L0匹配和L1排序阶段(初步排序阶段)可以被组合并且统称为L01匹配器。由于每一个节点包括L01匹配器和L2排序器,因此每一个节点一定还存储了倒排索引和正排索引的一部分,这是因为L01匹配器在一个实施例中利用倒排索引,并且L2排序器利用正排索引。如前所述,每一个节点可以被指定属于所述片段的倒排和正排索引的一部分。与片段314相关联的片段通信总线330和与片段316相关联的片段通信总线342允许每一个节点在必要时例如与片段根部通信。
图4是根据本发明的一些实施例的示出了有效载荷要求的混合分布系统400的示例图。系统400是具有多个节点的单个片段根部410的图示。在这里示出了六个节点(其中包括编号为412、414、416、418、420和422的节点)。虽然示出了六个节点,但是可以利用任意数目的节点来实施本发明的实施例。如前所述,每一个节点具有执行各种排序计算的功能,其中包括匹配级(L0)、初步排序级(L1)和最终排序级(L2)中的那些排序计算。因此,节点412例如具有用于这里所描述的L0和L1级的L01匹配器412A和用于这里所描述的L2级的L2排序器412B。但是对应于不同各级的有效载荷可能有很大不同。为了更好地说明这一点,以第一种图案示出了对应于L01匹配器的有效载荷并且用数字424标记,并且以第二种图案示出了对应于L2匹配器的有效载荷并且用数字426标记。
被分配给特定片段的文档群组通过原子(倒排索引)并且通过文档(正排索引)而被索引或碎片化。这些索引被分成等于构成该特定片段的节点数目的部分。在一个实施例中有四十个节点,因此倒排索引和正排索引当中的每一项被分成四十个部分,并且被存储在每一个对应的节点处。当搜索查询被提交到搜索引擎时,所述查询被发送到每一个片段。片段的责任是识别出其倒排索引具有来自索引的查询的其中一个或更多原子的第一节点集合。利用这种方法,如果查询被解析成两个原子,例如来自查询“William Shakespeare”的“William”和“Shakespeare”,则片段中的对于L01匹配器所将占用的最多节点数目将是两个。这一点在图4中示出,这是因为与节点412和节点416相关联的L01匹配器是被识别成用在L01匹配处理中的仅有的两个。由于被指定给每一个片段的文档通过原子索引,因此每一个原子在倒排索引中仅被索引一次,从而任何特定原子仅仅存在于被分配给该片段的各个节点的其中一个倒排索引部分中。在一种示例性情形中,一旦识别出第一节点集合,就把与倒排索引中的原子相匹配的来自搜索查询的原子发送到适当的节点。该节点执行许多计算,从而识别出文档集合。该第一文档集合在一个实施例中包含接收到来自初步排序阶段的最高排序的那些文档。
在片段根部410处从第一节点集合当中的每一个节点收集该第一文档集合,第一节点集合包括节点412和416。按照许多方式中的任一种组合这些结果,从而使得片段根部410可以接下来识别出将结合最终排序级使用的第二节点集合。如图所示,每一个L2排序器被采用在最终排序级(或L2级)中。这是因为每一个节点已经存储了用于该片段的正排索引的一部分,因此在最终排序级中有很大的几率将需要访问大部分或所有正排索引。在最终排序级中,为第二节点集合当中的每一个节点提供在其正排索引中所包含的文档标识,从而使得所述节点可以至少基于在正排索引中找到的数据来对该文档进行排序。由于大多数或者所有节点都被采用在最终排序级中,因此如图4的系统400中所示,最终排序级的有效载荷通常大于匹配/初步排序级的有效载荷。片段通信总线428允许各个节点与其他组件通信,比如例如片段根部410。
参照图5,该流程图示出了根据本发明的实施例的用于根据搜索查询利用混合分布系统识别相关文档的方法500。首先,在步骤510中为片段分配文档群组。在所述片段处接收到所述文档群组之前或之后,通过倒排索引中的原子并且通过正排索引中的文档对所述文档群组进行索引,正如步骤512中所表明的那样。这样,在正排索引中索引的文档就是构成被分配给该片段的文档群组的文档,并且从这些文档的内容解析倒排索引中的原子。在步骤514中,在所述片段中的每一个节点处存储倒排索引和正排索引的一部分。一般来说,各个片段由多个节点构成。每一个节点是能够根据存储在其上的倒排索引部分和正排索引部分执行排序计算的机器或计算设备。在一个实施例中,每一个节点存储所述片段的倒排索引和正排索引的不同或独特部分。
步骤516表明,在第一节点集合当中的每一个节点处访问倒排索引部分。第一节点集合当中的每一个节点已经被识别为索引了所接收到的搜索查询的其中一个原子。在步骤518中识别出第一文档集合。在一个实施例中,已经利用初步排序功能对这些文档进行了排序,从而可以识别出最具相关性的文档。该步骤例如可以对应于L1初步排序阶段和/或L0匹配阶段。基于与第一文档集合当中的文档相关联的文档标识,在第二节点集合当中的每一个节点处访问正排索引部分,正如步骤520中所示。该步骤可以对应于L2最终排序级。这样有效地限制了对应于特定搜索查询的相关文档的数量。因此,文档数量被限制到第二文档集合,正如步骤522中所示。在许多或大多数情况中,第二集合中的节点数目多于第一集合中的节点数目,正如前面更加详细地描述的那样。这是因为搜索查询可能只有两个原子,从而对于L01匹配阶段最多需要两个节点,但是成千的文档被识别为与搜索查询的所述两个原子相关,并且因此可能采用多得多的节点以便使用其对应的正排索引来执行最终排序计算,从而识别出第二文档集合。此外,在各个实施例中,由于最终排序功能利用了从初步排序功能产生的文档标识,因此第二集合中的文档数目少于第一集合中的文档数目,从而第二集合当中的每一个文档也被包含在第一集合中。
在一个实施例中,总体处理可能涉及接收搜索查询。识别出搜索查询中的一个或更多原子,并且一旦每一个片段知晓所述一个或更多原子,就在该片段中识别出包含来自搜索查询的一个或更多原子的至少其中之一的第一节点集合。第一节点集合当中的每一个节点向片段根部发送第一文档集合(例如文档标识),从而例如使得片段根部可以整合(例如删除重复)及合并结果。第二节点集合随后向片段根部发送第二文档集合。类似地,片段根部整合及合并结果,从而生成响应于搜索查询而被呈现给用户的最终文档集合。
参照图6,其中示出了根据本发明的实施例的用于为多处理文档检索系统生成混合分布系统的方法600的流程图。在步骤610中,接收到关于文档群组的指示,所述文档群组被指定给接收该文档群组的片段。所述片段包括多个节点(例如十个、四十个、五十个)。通过原子索引所述文档群组,从而生成倒排索引,正如步骤612中所示。在步骤614中,通过文档索引所述文档群组,从而生成正排索引。在步骤616中,将倒排索引的一部分和正排索引的一部分指定给构成所述片段的每一个节点。在各个实施例中,为每一个节点指定倒排和正排索引的不同部分,从而使得特定原子仅在片段内的一个节点的正排索引中被索引。
在各个实施例中,在所述片段处接收到关于已从搜索查询识别出的一个或更多原子的指示。识别出其倒排索引部分包括所述一个或更多原子的至少其中之一的第一节点集合。这些节点分别能够执行各项排序功能。基于第一节点集合的倒排索引部分识别出第一文档集合。第一集合当中的每一个节点可以产生第一集合并且将其发送到片段根部,从而可以整合及合并各个第一节点集合。在一个情况中,通过利用存储在其上的倒排索引部分的多级排序处理的初步排序处理产生第一文档集合。此外,随后可以识别出其正排索引部分索引了对应于第一文档集合的一个或更多文档标识的第二节点集合。随后可以部分地基于存储在正排索引中的数据而识别出第二文档集合,并且可以实时地而不是利用预先计算的分数来计算各项特征。可以基于利用正排索引的多级排序处理的最终排序处理来识别第二文档集合。一旦来自第二节点集合当中的每一个节点的第二文档集合被整合及合并,就将其与来自所有其他片段的第二文档集合合并,从而形成最终文档集合并且将其返回给用户以作为搜索结果。
图7是示出了根据本发明的实施例的用于根据搜索查询利用混合分布系统来识别相关文档的方法700的流程图。首先,在步骤710中,接收到搜索查询。在步骤712中,识别出搜索查询中的各个原子。在步骤714中,将所述原子传送到各个片段。每一个片段已被指定文档群组,所述文档群组通过原子并且通过文档而被索引从而形成存储在每一个片段处的倒排索引和正排索引。每一个片段由多个节点构成,每一个节点都被指定正排索引和倒排索引的一部分。在步骤716中,识别出其倒排索引部分包含来自搜索查询的至少其中一个原子的第一节点集合。在步骤718中,访问第一节点集合当中的每一个节点的倒排索引部分,以便识别出第一相关文档集合。基于与第一文档集合当中的每一个文档相关联的文档标识,在步骤720中识别出第二节点集合。第二节点集合当中的每一个节点已经在其对应的正排索引部分中存储了至少其中一个所述文档标识,从而该节点可以对每一个文档执行排序处理。在步骤722中访问第二节点集合当中的每一个节点处的正排索引部分,以便限制相关文档的数目。在一个实施例中,第二文档集合当中的每一个文档也被包含在第一文档集合中。基于第二文档集合,(例如通过编辑来自该多个片段的第二文档集合)生成搜索结果并且呈现给用户。
前面关于具体实施例描述了本发明,所述实施例意图在所有方面都是说明性而非限制性的。在不背离本发明的范围的情况下,本领域普通技术人员将认识到替换实施例。
从前述内容可以看出,本发明非常适合于实现前面所阐述的所有目标和目的,并且同时具有所述系统和方法所明显固有的其他优点。应当理解的是,某些特征和子组合具有实用性,并且可以在不参照其他特征和子组合的情况下被采用。这一点被设想在权利要求书的范围内。

Claims (21)

1.一种基于搜索查询利用混合分布系统来识别相关文档的方法,所述方法包括:
为片段分配510文档群组,所述文档群组在倒排索引中由原子索引并且在正排索引中由文档索引;
在形成所述片段的多个节点当中的每一个节点上存储514倒排索引和正排索引的不同部分;
访问516存储在第一节点集合当中的每一个节点上的倒排索引部分,以便识别与搜索查询相关的第一文档集合;以及
基于与第一文档集合相关联的文档标识,访问520存储在第二节点集合当中的每一个节点上的正排索引部分,以便把第一文档集合中的相关文档的数量限制到第二文档集合。
2.权利要求1的方法,其中,节点是能够基于其所存储的倒排索引部分和正排索引部分来执行排序计算的机器。
3.权利要求1的方法,其中,第二节点集合当中的节点数量大于第一节点集合当中的节点数量。
4.权利要求1的方法,其中,通过作为多级排序处理的一部分的初步排序处理将第一文档集合识别为与搜索查询相关,其中初步排序处理利用倒排索引部分。
5.权利要求4的方法,其中,第二文档集合当中的每一个文档被包含在第一文档集合中。
6.权利要求5的方法,其中,通过作为总体排序处理的一部分的最终排序处理识别出第二文档集合,其中最终排序处理利用正排索引部分。
7.权利要求1的方法,还包括:
接收搜索查询;
识别出搜索查询中的一个或更多原子;以及
在所述片段中识别出包含所述一个或更多原子的至少其中之一的第一节点集合。
8.权利要求1的方法,其中,存储在第二节点集合当中的每一个节点上的正排索引部分包含至少其中一个与第一文档集合相关联的文档标识。
9.权利要求1的方法,其中,合并来自多个片段的第二文档集合以便生成响应于搜索查询而被呈现给用户的最终文档集合。
10.一种为多处理文档检索系统生成混合分布系统的方法,所述方法包括:
接收610关于被指定给片段的文档群组的指示,所述片段包括多个节点;
对于所述片段,
(1)通过原子索引612所分配的文档群组以便生成倒排索引,并且
(2)通过文档索引614所分配的文档群组以便生成正排索引;以及
将倒排索引的一部分和正排索引的一部分指定616给形成所述片段的多个节点当中的每一个,从而使得所述多个节点当中的每一个存储正排索引的不同部分和倒排索引的不同部分。
11.权利要求10的方法,还包括:
在所述片段处接收关于已从搜索查询识别的一个或更多原子的指示;
识别出其倒排索引部分包括所述一个或更多原子的至少其中之一的第一节点集合;以及
部分地基于第一节点集合的倒排索引部分识别出第一文档集合。
12.权利要求11的方法,还包括:
识别出其正排索引部分包括对应于第一文档集合的一个或更多文档标识的第二节点集合;以及
至少基于正排索引部分中的数据识别出第二文档集合。
13.权利要求11的方法,其中,基于利用倒排索引部分的多级排序处理的初步排序处理来识别第一文档集合。
14.权利要求12的方法,其中,基于利用正排索引部分的多级排序处理的最终排序处理来识别第二文档集合。
15.权利要求12的方法,其中,基于搜索查询被传送以供呈现给用户的搜索结果是基于接收自多个片段的第二文档集合。
16.一种基于搜索查询利用混合分布系统来识别相关文档的方法,所述方法包括:
接收710搜索查询;
识别712搜索查询中的一个或更多原子;
向分别被指定由原子和文档二者索引的文档群组的多个片段传送714所述一个或更多原子,从而使得在所述多个片段当中的每一个片段处生成并存储倒排索引和正排索引,其中所述多个片段当中的每一个由多个节点构成,所述节点分别被指定正排索引和倒排索引的一部分;
基于所述一个或更多原子,在第一片段处识别出716其倒排索引部分包含来自搜索查询的所述一个或更多原子当中的至少一个的第一节点集合;
访问718存储在第一节点集合当中的每一个节点处的倒排索引部分,以便识别出被发现与所述一个或更多原子相关的第一文档集合;
基于与第一文档集合相关联的文档标识,识别出720其正排索引部分包含其中一个或更多与第一文档集合相关联的文档标识的第二节点集合;以及
访问722存储在第二节点集合当中的每一个节点处的正排索引部分,以便识别出作为第一文档集合的子集的第二文档集合。
17.权利要求16的方法,其中,第二文档集合中的文档被发现是第一文档集合中的文档当中最具相关性的。
18.权利要求16的方法,还包括:基于第二文档集合传送搜索结果以供呈现给用户。
19.权利要求16的方法,还包括:接收来自所述多个片段当中的每一个的第二文档集合。
20.权利要求19的方法,还包括:合并每一个第二文档集合,从而生成相关文档合并列表。
21.存储计算机可用指令的一种或更多种计算机存储介质,当由计算设备使用时,所述计算机可用指令使得计算设备执行如权利要求1-20中的任一个的方法。
CN201110373397.5A 2010-11-22 2011-11-22 用于搜索引擎索引的混合分布模型 Active CN102402605B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/951815 2010-11-22
US12/951,815 2010-11-22
US12/951,815 US9424351B2 (en) 2010-11-22 2010-11-22 Hybrid-distribution model for search engine indexes

Publications (2)

Publication Number Publication Date
CN102402605A true CN102402605A (zh) 2012-04-04
CN102402605B CN102402605B (zh) 2014-04-02

Family

ID=45884805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110373397.5A Active CN102402605B (zh) 2010-11-22 2011-11-22 用于搜索引擎索引的混合分布模型

Country Status (2)

Country Link
US (3) US9424351B2 (zh)
CN (1) CN102402605B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013182054A1 (zh) * 2012-06-06 2013-12-12 腾讯科技(深圳)有限公司 内存检索、实时检索系统和方法、计算机存储介质
CN110399545A (zh) * 2018-04-20 2019-11-01 伊姆西Ip控股有限责任公司 管理文档索引的方法和设备
WO2021213127A1 (en) * 2020-04-21 2021-10-28 International Business Machines Corporation Cached updatable top-k index
CN113641782A (zh) * 2020-04-27 2021-11-12 北京庖丁科技有限公司 基于检索语句的信息检索方法、装置、设备和介质

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424351B2 (en) 2010-11-22 2016-08-23 Microsoft Technology Licensing, Llc Hybrid-distribution model for search engine indexes
US10078697B2 (en) * 2012-08-24 2018-09-18 Yandex Europe Ag Computer-implemented method of and system for searching an inverted index having a plurality of posting lists
US9323809B2 (en) 2014-03-10 2016-04-26 Interana, Inc. System and methods for rapid data analysis
US10296507B2 (en) 2015-02-12 2019-05-21 Interana, Inc. Methods for enhancing rapid data analysis
CN104765782B (zh) * 2015-03-20 2019-06-21 五八同城信息技术有限公司 一种索引排序更新方法及装置
US11010768B2 (en) * 2015-04-30 2021-05-18 Oracle International Corporation Character-based attribute value extraction system
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US10467215B2 (en) 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US11281639B2 (en) * 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US11048737B2 (en) * 2015-11-16 2021-06-29 International Business Machines Corporation Concept identification in a question answering system
US10546030B2 (en) * 2016-02-01 2020-01-28 Microsoft Technology Licensing, Llc Low latency pre-web classification
US10621237B1 (en) * 2016-08-01 2020-04-14 Amazon Technologies, Inc. Contextual overlay for documents
US10423387B2 (en) 2016-08-23 2019-09-24 Interana, Inc. Methods for highly efficient data sharding
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US11409749B2 (en) * 2017-11-09 2022-08-09 Microsoft Technology Licensing, Llc Machine reading comprehension system for answering queries related to a document
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11017042B2 (en) * 2018-05-31 2021-05-25 Microsoft Technology Licensing, Llc Profile spam removal in search results from social network
US11144579B2 (en) * 2019-02-11 2021-10-12 International Business Machines Corporation Use of machine learning to characterize reference relationship applied over a citation graph
CN110083679B (zh) * 2019-03-18 2020-08-18 北京三快在线科技有限公司 搜索请求的处理方法、装置、电子设备和存储介质
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
CN112084393A (zh) * 2020-09-09 2020-12-15 北京百度网讯科技有限公司 用于输出信息的方法、装置、设备以及存储介质
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191737A1 (en) * 1999-12-20 2003-10-09 Steele Robert James Indexing system and method
CN101388026A (zh) * 2008-10-09 2009-03-18 浙江大学 一种基于领域本体的语义索引方法
CN101393565A (zh) * 2008-11-07 2009-03-25 北京航空航天大学 基于本体的面向虚拟博物馆的搜索方法
US20090112843A1 (en) * 2007-10-29 2009-04-30 International Business Machines Corporation System and method for providing differentiated service levels for search index

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769772A (en) 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5193180A (en) 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5467425A (en) 1993-02-26 1995-11-14 International Business Machines Corporation Building scalable N-gram language models using maximum likelihood maximum entropy N-gram models
US6173298B1 (en) 1996-09-17 2001-01-09 Asap, Ltd. Method and apparatus for implementing a dynamic collocation dictionary
US6076051A (en) * 1997-03-07 2000-06-13 Microsoft Corporation Information retrieval utilizing semantic representation of text
US5983216A (en) 1997-09-12 1999-11-09 Infoseek Corporation Performing automated document collection and selection by providing a meta-index with meta-index values indentifying corresponding document collections
US6167397A (en) 1997-09-23 2000-12-26 At&T Corporation Method of clustering electronic documents in response to a search query
US6571251B1 (en) 1997-12-30 2003-05-27 International Business Machines Corporation Case-based reasoning system and method with a search engine that compares the input tokens with view tokens for matching cases within view
BE1012981A3 (nl) 1998-04-22 2001-07-03 Het Babbage Inst Voor Kennis E Werkwijze en systeem voor het weervinden van documenten via een elektronisch databestand.
US6358309B1 (en) 1998-12-10 2002-03-19 3M Innovative Properties Company Low dust wall repair compound
NO992269D0 (no) 1999-05-10 1999-05-10 Fast Search & Transfer Asa S°kemotor med todimensjonalt skalerbart, parallell arkitektur
US6507829B1 (en) 1999-06-18 2003-01-14 Ppd Development, Lp Textual data classification method and apparatus
US6704729B1 (en) 2000-05-19 2004-03-09 Microsoft Corporation Retrieval of relevant information categories
DE60017727T2 (de) * 2000-08-18 2005-12-29 Exalead Suchwerkzeug und Prozess zum Suchen unter Benutzung von Kategorien und Schlüsselwörtern
US20030217052A1 (en) 2000-08-24 2003-11-20 Celebros Ltd. Search engine method and apparatus
NO313399B1 (no) 2000-09-14 2002-09-23 Fast Search & Transfer Asa Fremgangsmate til soking og analyse av informasjon i datanettverk
AUPR082400A0 (en) 2000-10-17 2000-11-09 Telstra R & D Management Pty Ltd An information retrieval system
US20020091671A1 (en) 2000-11-23 2002-07-11 Andreas Prokoph Method and system for data retrieval in large collections of data
US6766316B2 (en) 2001-01-18 2004-07-20 Science Applications International Corporation Method and system of ranking and clustering for document indexing and retrieval
SE520533C2 (sv) 2001-03-13 2003-07-22 Picsearch Ab Metod, datorprogram och system för indexering av digitaliserade enheter
JP4342753B2 (ja) 2001-08-10 2009-10-14 株式会社リコー 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体
US7664840B2 (en) 2001-09-13 2010-02-16 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
CN1589444A (zh) 2001-11-14 2005-03-02 Jam株式会社 信息搜索支持系统,计算机程序和程序存储媒体
US6901411B2 (en) 2002-02-11 2005-05-31 Microsoft Corporation Statistical bigram correlation model for image retrieval
US7039631B1 (en) 2002-05-24 2006-05-02 Microsoft Corporation System and method for providing search results with configurable scoring formula
US6999958B2 (en) 2002-06-07 2006-02-14 International Business Machines Corporation Runtime query optimization for dynamically selecting from multiple plans in a query based upon runtime-evaluated performance criterion
US20040139167A1 (en) 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
US7111000B2 (en) 2003-01-06 2006-09-19 Microsoft Corporation Retrieval of structured documents
US7382358B2 (en) 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7421418B2 (en) 2003-02-19 2008-09-02 Nahava Inc. Method and apparatus for fundamental operations on token sequences: computing similarity, extracting term values, and searching efficiently
US20040243632A1 (en) 2003-05-30 2004-12-02 International Business Machines Corporation Adaptive evaluation of text search queries with blackbox scoring functions
US7324988B2 (en) 2003-07-07 2008-01-29 International Business Machines Corporation Method of generating a distributed text index for parallel query processing
US7433893B2 (en) 2004-03-08 2008-10-07 Marpex Inc. Method and system for compression indexing and efficient proximity search of text data
US7254774B2 (en) 2004-03-16 2007-08-07 Microsoft Corporation Systems and methods for improved spell checking
US7376642B2 (en) * 2004-03-30 2008-05-20 Microsoft Corporation Integrated full text search system and method
US7580921B2 (en) 2004-07-26 2009-08-25 Google Inc. Phrase identification in an information retrieval system
US7584175B2 (en) 2004-07-26 2009-09-01 Google Inc. Phrase-based generation of document descriptions
US7305385B1 (en) 2004-09-10 2007-12-04 Aol Llc N-gram based text searching
US7461064B2 (en) 2004-09-24 2008-12-02 International Buiness Machines Corporation Method for searching documents for ranges of numeric values
US7805446B2 (en) 2004-10-12 2010-09-28 Ut-Battelle Llc Agent-based method for distributed clustering of textual information
US7689615B2 (en) 2005-02-25 2010-03-30 Microsoft Corporation Ranking results using multiple nested ranking
US20060248066A1 (en) 2005-04-28 2006-11-02 Microsoft Corporation System and method for optimizing search results through equivalent results collapsing
US20070067274A1 (en) 2005-09-16 2007-03-22 International Business Machines Corporation Hybrid push-down/pull-up of unions with expensive operations in a federated query processor
US20070250501A1 (en) 2005-09-27 2007-10-25 Grubb Michael L Search result delivery engine
US20070078653A1 (en) 2005-10-03 2007-04-05 Nokia Corporation Language model compression
US7596745B2 (en) 2005-11-14 2009-09-29 Sun Microsystems, Inc. Programmable hardware finite state machine for facilitating tokenization of an XML document
US8175875B1 (en) * 2006-05-19 2012-05-08 Google Inc. Efficient indexing of documents with similar content
US7624118B2 (en) 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US7593934B2 (en) 2006-07-28 2009-09-22 Microsoft Corporation Learning a document ranking using a loss function with a rank pair or a query parameter
US7805438B2 (en) 2006-07-31 2010-09-28 Microsoft Corporation Learning a document ranking function using fidelity-based error measurements
US7620634B2 (en) 2006-07-31 2009-11-17 Microsoft Corporation Ranking functions using an incrementally-updatable, modified naïve bayesian query classifier
US7765215B2 (en) 2006-08-22 2010-07-27 International Business Machines Corporation System and method for providing a trustworthy inverted index to enable searching of records
US20080059489A1 (en) 2006-08-30 2008-03-06 International Business Machines Corporation Method for parallel query processing with non-dedicated, heterogeneous computers that is resilient to load bursts and node failures
US8401841B2 (en) 2006-08-31 2013-03-19 Orcatec Llc Retrieval of documents using language models
US7895210B2 (en) 2006-09-29 2011-02-22 Battelle Memorial Institute Methods and apparatuses for information analysis on shared and distributed computing systems
US7761407B1 (en) 2006-10-10 2010-07-20 Medallia, Inc. Use of primary and secondary indexes to facilitate aggregation of records of an OLAP data cube
US20080114750A1 (en) 2006-11-14 2008-05-15 Microsoft Corporation Retrieval and ranking of items utilizing similarity
US7783644B1 (en) 2006-12-13 2010-08-24 Google Inc. Query-independent entity importance in books
US7930290B2 (en) 2007-01-12 2011-04-19 Microsoft Corporation Providing virtual really simple syndication (RSS) feeds
US20080208836A1 (en) 2007-02-23 2008-08-28 Yahoo! Inc. Regression framework for learning ranking functions using relative preferences
US7702614B1 (en) 2007-03-30 2010-04-20 Google Inc. Index updating using segment swapping
US7693813B1 (en) 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
WO2008120030A1 (en) 2007-04-02 2008-10-09 Sobha Renaissance Information Latent metonymical analysis and indexing [lmai]
JP4980148B2 (ja) 2007-06-07 2012-07-18 株式会社日立製作所 文書検索方法
US7984043B1 (en) 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US7792846B1 (en) 2007-07-27 2010-09-07 Sonicwall, Inc. Training procedure for N-gram-based statistical content classification
US20090070322A1 (en) 2007-08-31 2009-03-12 Powerset, Inc. Browsing knowledge on the basis of semantic relations
US8117208B2 (en) 2007-09-21 2012-02-14 The Board Of Trustees Of The University Of Illinois System for entity search and a method for entity scoring in a linked document database
US8332411B2 (en) 2007-10-19 2012-12-11 Microsoft Corporation Boosting a ranker for improved ranking accuracy
US20090132515A1 (en) 2007-11-19 2009-05-21 Yumao Lu Method and Apparatus for Performing Multi-Phase Ranking of Web Search Results by Re-Ranking Results Using Feature and Label Calibration
US8095512B2 (en) 2007-11-19 2012-01-10 International Business Machines Corporation Managing database resources used for optimizing query execution on a parallel computer system
US7917503B2 (en) 2008-01-17 2011-03-29 Microsoft Corporation Specifying relevance ranking preferences utilizing search scopes
US7853599B2 (en) 2008-01-21 2010-12-14 Microsoft Corporation Feature selection for ranking
US8255386B1 (en) 2008-01-30 2012-08-28 Google Inc. Selection of documents to place in search index
US8924374B2 (en) * 2008-02-22 2014-12-30 Tigerlogic Corporation Systems and methods of semantically annotating documents of different structures
US8229921B2 (en) 2008-02-25 2012-07-24 Mitsubishi Electric Research Laboratories, Inc. Method for indexing for retrieving documents using particles
CN100595763C (zh) 2008-02-26 2010-03-24 华中科技大学 基于自然语言的全文检索系统
US8010482B2 (en) 2008-03-03 2011-08-30 Microsoft Corporation Locally computable spam detection features and robust pagerank
US20090248669A1 (en) 2008-04-01 2009-10-01 Nitin Mangesh Shetti Method and system for organizing information
US20090254523A1 (en) 2008-04-04 2009-10-08 Yahoo! Inc. Hybrid term and document-based indexing for search query resolution
US8386508B2 (en) 2008-04-28 2013-02-26 Infosys Technologies Limited System and method for parallel query evaluation
US8171031B2 (en) 2008-06-27 2012-05-01 Microsoft Corporation Index optimization for ranking using a linear model
US8458170B2 (en) 2008-06-30 2013-06-04 Yahoo! Inc. Prefetching data for document ranking
US8255391B2 (en) 2008-09-02 2012-08-28 Conductor, Inc. System and method for generating an approximation of a search engine ranking algorithm
US20100082617A1 (en) 2008-09-24 2010-04-01 Microsoft Corporation Pair-wise ranking model for information retrieval
JP4633162B2 (ja) 2008-12-01 2011-02-16 株式会社エヌ・ティ・ティ・ドコモ インデックス生成システム、情報検索システム、及びインデックス生成方法
CN101437031B (zh) 2008-12-03 2012-08-15 腾讯科技(深圳)有限公司 计算机网络数据的传输处理方法与系统
US8341095B2 (en) 2009-01-12 2012-12-25 Nec Laboratories America, Inc. Supervised semantic indexing and its extensions
US8676827B2 (en) 2009-02-04 2014-03-18 Yahoo! Inc. Rare query expansion by web feature matching
US8620900B2 (en) 2009-02-09 2013-12-31 The Hong Kong Polytechnic University Method for using dual indices to support query expansion, relevance/non-relevance models, blind/relevance feedback and an intelligent search interface
US8527523B1 (en) 2009-04-22 2013-09-03 Equivio Ltd. System for enhancing expert-based computerized analysis of a set of digital documents and methods useful in conjunction therewith
US8166203B1 (en) 2009-05-29 2012-04-24 Google Inc. Server selection based upon time and query dependent hashing
US8271499B2 (en) 2009-06-10 2012-09-18 At&T Intellectual Property I, L.P. Incremental maintenance of inverted indexes for approximate string matching
US20100318516A1 (en) 2009-06-10 2010-12-16 Google Inc. Productive distribution for result optimization within a hierarchical architecture
CN101635741B (zh) 2009-08-27 2012-09-19 中国科学院计算技术研究所 分布式网络中查询资源的方法及其系统
US8886641B2 (en) 2009-10-15 2014-11-11 Yahoo! Inc. Incorporating recency in network search using machine learning
US8255379B2 (en) * 2009-11-10 2012-08-28 Microsoft Corporation Custom local search
US9110971B2 (en) 2010-02-03 2015-08-18 Thomson Reuters Global Resources Method and system for ranking intellectual property documents using claim analysis
US10216831B2 (en) * 2010-05-19 2019-02-26 Excalibur Ip, Llc Search results summarized with tokens
CN101950300B (zh) 2010-09-20 2013-07-24 华南理工大学 一种分布式搜索引擎系统及其实现方法
US9424351B2 (en) 2010-11-22 2016-08-23 Microsoft Technology Licensing, Llc Hybrid-distribution model for search engine indexes
US9195745B2 (en) 2010-11-22 2015-11-24 Microsoft Technology Licensing, Llc Dynamic query master agent for query execution
US8478704B2 (en) 2010-11-22 2013-07-02 Microsoft Corporation Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191737A1 (en) * 1999-12-20 2003-10-09 Steele Robert James Indexing system and method
US20090112843A1 (en) * 2007-10-29 2009-04-30 International Business Machines Corporation System and method for providing differentiated service levels for search index
CN101388026A (zh) * 2008-10-09 2009-03-18 浙江大学 一种基于领域本体的语义索引方法
CN101393565A (zh) * 2008-11-07 2009-03-25 北京航空航天大学 基于本体的面向虚拟博物馆的搜索方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013182054A1 (zh) * 2012-06-06 2013-12-12 腾讯科技(深圳)有限公司 内存检索、实时检索系统和方法、计算机存储介质
CN103473229A (zh) * 2012-06-06 2013-12-25 深圳市世纪光速信息技术有限公司 一种内存检索系统和方法、以及实时检索系统和方法
US9619512B2 (en) 2012-06-06 2017-04-11 Tencent Technology (Shenzhen) Company Limited Memory searching system and method, real-time searching system and method, and computer storage medium
CN110399545A (zh) * 2018-04-20 2019-11-01 伊姆西Ip控股有限责任公司 管理文档索引的方法和设备
CN110399545B (zh) * 2018-04-20 2023-06-02 伊姆西Ip控股有限责任公司 管理文档索引的方法和设备
WO2021213127A1 (en) * 2020-04-21 2021-10-28 International Business Machines Corporation Cached updatable top-k index
US11327980B2 (en) 2020-04-21 2022-05-10 International Business Machines Corporation Cached updatable top-k index
GB2610108A (en) * 2020-04-21 2023-02-22 Ibm Cached updatable top-k index
CN113641782A (zh) * 2020-04-27 2021-11-12 北京庖丁科技有限公司 基于检索语句的信息检索方法、装置、设备和介质

Also Published As

Publication number Publication date
US20200192948A1 (en) 2020-06-18
US20120130997A1 (en) 2012-05-24
US10437892B2 (en) 2019-10-08
US11803596B2 (en) 2023-10-31
US9424351B2 (en) 2016-08-23
CN102402605B (zh) 2014-04-02
US20140324819A1 (en) 2014-10-30

Similar Documents

Publication Publication Date Title
CN102402605B (zh) 用于搜索引擎索引的混合分布模型
US11580104B2 (en) Method, apparatus, device, and storage medium for intention recommendation
US20210209182A1 (en) Systems and methods for improved web searching
CN102016845B (zh) 社交网络提供的查询细化和推荐
CN102236663B (zh) 一种基于垂直搜索的查询方法、系统和装置
CN101401062A (zh) 确定相关来源、查询及合并多个内容来源的结果的方法和系统
US20110264651A1 (en) Large scale entity-specific resource classification
CN105359144A (zh) 用于意图查询的自然语言搜索结果
CN102693273A (zh) 无监督消息聚类
CN103838756A (zh) 一种确定推送信息的方法及装置
CN104769585A (zh) 递归地遍历因特网和其他源以识别、收集、管理、评判和鉴定企业身份及相关数据的系统和方法
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
CN104063376A (zh) 多维度分组运算方法及系统
CN104239395A (zh) 搜索的方法和系统
CN104809177A (zh) 一种基于客户端的网页评论、推荐方法及系统
CN103597474A (zh) 对列入访问控制表的文档进行的高效索引和搜索
CN102541631B (zh) 以多线程不同驱动源执行计划处理查询的方法和系统
CN103198067A (zh) 一种业务搜索方法及系统
CN101911065A (zh) 访问对象信息检索装置
CN101916294A (zh) 一种利用语义分析实现精确搜索的方法
US20120239657A1 (en) Category classification processing device and method
CN105404675A (zh) Ranked反近邻空间关键字查询方法及装置
CN111899822B (zh) 医疗机构数据库构建方法、查询方法、装置、设备和介质
CN102930056A (zh) 云存储系统的检索方法及设备
CN110909266B (zh) 深度分页的方法、装置及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.