CN103069421A - 用于处理针对分区式索引的搜索请求的方法和装置 - Google Patents
用于处理针对分区式索引的搜索请求的方法和装置 Download PDFInfo
- Publication number
- CN103069421A CN103069421A CN2011800407385A CN201180040738A CN103069421A CN 103069421 A CN103069421 A CN 103069421A CN 2011800407385 A CN2011800407385 A CN 2011800407385A CN 201180040738 A CN201180040738 A CN 201180040738A CN 103069421 A CN103069421 A CN 103069421A
- Authority
- CN
- China
- Prior art keywords
- request
- responses
- response
- index
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于增强型处理涉及分区式索引的搜索请求的技术包括接收用于搜索索引的请求。跨越通信的多个节点对索引分区。该方法也包括确定请求是否有确定性。该方法还包括基于请求是否有确定性来确定来自多个节点中的至少一个节点的对请求的响应数目。
Description
背景技术
服务提供商(例如,无线、蜂窝等)和设备制造商不断受到例如通过提供有吸引力的网络服务来向消费者递送价值和便利的挑战。业内的重要分化因素是应用和网络服务以及用于支持和伸缩这些服务的能力。具体而言,这些应用和服务可以包括访问和管理网络服务利用的数据。这些服务需要管理通过用于书籍、音频和视频的在线店铺或者为大量订户在线存储个人电子邮件、图片、音频和视频而可用的大量用户数据、比如太字节的数据。为了搜索这些大型数据保持,生成将数据对象如书籍和图像以及文件与可搜索字段如日期和主题内容关联的索引。索引本身可能变得很大。一些服务存储在许多网络节点之间分布的这样的索引,从而每个节点维护大小可以在合理短的时间内搜索的索引。尽管索引被分区,一些搜索仍然涉及到索引的多数或者所有分区并且可能消耗大量计算能力和网络带宽而有对个别搜索请求做出响应的固有延迟。
发明内容
因此需要一种用于增强型处理涉及分区式索引的搜索请求的方式,该方式未受现有技术方式的所有弊端困扰。
根据一个实施例,一种方法包括接收用于搜索索引的当前请求。跨越通信的多个节点对索引分区。该方法还包括确定请求是否有确定性。该方法还包括基于请求是否有确定性来确定来自多个节点中的至少一个节点的对请求的响应数目。在一些实施例中,如果不多于预定数目的索引条目集合至少实质上满足请求,例如仅一个索引条目集合实质上满足请求,则请求有确定性。
根据另一实施例,一种方法包括促进访问至少一个接口,该至少一个接口被配置用于允许访问至少一个服务。至少一个服务被配置用于至少执行接收用于搜索索引的请求。服务还被配置用于确定请求是否有确定性。服务还被配置用于基于请求是否有确定性来确定来自多个节点中的至少一个节点的对请求的响应数目。
根据另一实施例,一种装置包括至少一个处理器和包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码被配置用于与至少一个处理器一起至少部分使该装置接收用于搜索索引的请求,其中跨越通信的多个节点对索引分区。还使该装置确定请求是否有确定性。还使装置基于请求是否有确定性来确定来自多个节点中的至少一个节点的对请求的响应数目。
根据另一实施例,一种计算机可读存储介质承载一个或者多个指令的一个或者多个序列,一个或者多个指令的一个或者多个序列在由一个或者多个处理器执行时至少部分使装置接收用于搜索索引的请求,其中跨越通信的多个节点对索引分区。还使该装置确定请求是否有确定性。还使装置基于请求是否有确定性来确定来自多个节点中的至少一个节点的对请求的响应数目。
根据另一实施例,一种装置包括用于执行上述方法之一的步骤的装置。
根据另一实施例,一种计算机程序产品包括一个或者多个指令的一个或者多个序列,一个或者多个指令的一个或者多个序列在由一个或者多个处理器执行时使装置至少执行上述方法之一的步骤。
仅通过举例说明多个具体实施例和实现方式从以下具体描述中容易清楚本发明的更多其它方面、特征和优点,这些具体实施例和实现方式包括设想的用于实现本发明的最佳实施方式。本发明还能够有其它和不同实施例并且可以在各种明显方面修改它的若干细节而都未脱离本发明的精神实质和范围。因而附图和说明书将视为在性质上为示例而非限制。
附图说明
在附图的各图中通过例子而非通过限制来举例说明本发明的实施例:
图1A是根据一个实施例的能够增强型处理涉及分区式索引的搜索请求的***的示图;
图1B是根据一个实施例的索引服务分布式索引的部件的示图;
图2A是根据一个实施例的索引分区数据结构的示图;
图2B是根据一个实施例的搜索请求消息的示图;
图2C是根据一个实施例的请求类别统计量数据结构的示图;
图3A是根据一个实施例的用于增强型处理涉及分区式索引的搜索请求的过程的流程图;
图3B是根据一个实施例使用的图示泊松分布的图表;
图4是可以用来实施本发明实施例的硬件的示图;
图5是可以用来实施本发明实施例的芯片集的示图;并且
图6是可以用来实施本发明实施例的移动终端(例如,手持机)的示图。
具体实施方式
公开一种用于处理涉及分区式索引的搜索请求的方法、装置和计算机程序的例子。在下文描述中,出于说明的目的,阐述许多具体细节以便提供对本发明实施例的透彻理解。然而本领域技术人员清楚,无这些具体细节仍可实现或者可以用等效布置来实现本发明的实施例。在其它实例中,以框图形式示出了公知结构和设备以免不必要地模糊本发明的实施例。
如这里所用,术语分区指代数据结构,该数据结构保持更大数据集的部分。数据集可以保持从订户数据到音乐店、书店、视频店、艺术店、游戏店或者在通信网络上的任何其它数字内容源的内容的任何种类的数据。术语索引指代数据结构,该数据结构具有可以搜索的至少一个字段。在一些实施例中,未在索引中排列店铺的全部内容而是将信息的子集放置到搜索起来更高效的小得多的索引中。例如,书店可以使每本书的每页可搜索,因此成为如这里定义的索引。然而,将可搜索的仅一些字段拉取到索引中经常更高效。例如,指示标题、作者、出版日期、版权日期、ISBN编号、评论和评级的少数字段足以让搜索者确定是否应当订购书而无需包括书的每页作为索引的字段。虽然关于分区式索引描述各种实施例,该索引指向可以从书店订购的物理或者数字书,但是设想这里描述的方式可以与用于其它数字内容或者物理对象的其它索引一起使用。
图1A是根据一个实施例的能够增强型处理涉及分区式索引的搜索请求的***的示图。用户设备(UE)101a至UE101n(下文统称为UE101)的用户访问网络服务110a、110b至110n(下文统称为网络服务110)中的任何网络服务。网络服务110获取并且在下文称为数据存储库的一个或者多个数据存储介质中存储大量信息。例如,服务110n维护分布式数据存储库113。由于这样的数据存储库可能变得很大而具有太字节的数据(1太字节TB=1012个字节,其中一个字节=称为位的8个二进制数),所以搜索所有这一数据以发现特定条目变得不高效。因而,用于搜索的重要字段的明显更小索引由索引服务120形成和管理。然而,即使每个条目少数重要字段的索引也可能包括数十亿条目。为了分布维护和搜索索引的计算负荷,索引被分区;并且每个分区放置于包括多个节点的分布式索引123的不同节点上。例如,针对保持二十亿(2x109)个条目的索引,200个节点中的每个节点操纵1千万个索引条目的分区。当接收用于搜索索引的请求时,分布式索引的每个节点在其自己的分区中搜索满足搜索标准的索引条目;并且结果由索引服务120聚合。
然而,在每个节点搜索分区可能有浪费,因为许多请求可能被节点中的仅少数节点上的索引条目满足。它不仅使节点参与完成并非为了实质上满足请求而需要的搜索,而且聚合器被迫操纵和排序所有响应(例如,匹配)以形成响应请求。例如,如果针对按日期排序的包括短语“内战”的100个标题接收请求,并且如果每个节点平均有约50个这样的标题,则两个普通节点可以满足请求。然而200个节点将对请求做出响应从而产生10,000个标题。198个节点遍历多达一千万个条目而消耗的计算负荷和带宽被浪费。同时,聚合器必须挑选或者按日期排序10,000个标题以挑选用于实质上满足请求的100个标题从而浪费聚合器,例如索引服务120上的计算资源。
为了解决这一问题,图1A的***100引入用于增强对涉及一个或者多个分区式索引的搜索请求的处理的能力。根据各种实施例,索引服务120包括增强型请求模块150。增强型请求模块150确定请求何时有确定性并且应当由所有节点处理以及请求何时无确定性,并且应当先由可能实质上满足请求的少数节点处理。在一些实施例中,增强型请求模块150还赋予用于用高置信度、但是用比蛮力方式少得多的操作实质上满足有确定性的请求的能力。
如图1A中所示,***100包括用户设备(UE)101,该UE101具有经由通信网络105与网络服务110的连接性。举例而言,***100的通信网络105包括一个或者多个网络,比如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)或者其任何组合。设想数据网络可以是任何局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网(例如,因特网)、短程无线网络或者任何其它适当分组交换网络、比如商业上拥有的专有分组交换网络如专有线缆或者光纤网络等或者其任何组合。此外,无线网络可以例如是蜂窝网络并且可以运用包括全球演进增强数据速率(EDGE)、通用分组无线电服务(GPRS)、全球移动通信***(GSM)、网际协议多媒体子***(IMS)、通用移动电信***(UMTS)等的各种技术以及任何其它适当无线介质、例如全球微波接入互操作性(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、无线LAN(WLAN)、蓝牙、网际协议(IP)数据播送、卫星、移动自组织网络(MANET)等或者其任何组合。
UE101是任何类型的移动终端、固定终端或者便携终端,该便携终端包括移动手持机、站、单元、设备、多媒体计算机、多媒体写字板、因特网节点、通信器、桌面型计算机、膝上型计算机、笔记本计算机、写字板计算机、个人数字助理(PDA)、音频/视频播放器、数字相机/可携式摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任何组合、包括这些设备的附件和外设或者其任何组合。还设想UE101可以支持与用户的任何类型的接口(比如“可佩戴”电路等)。
至少一个网络服务110有权访问索引服务120以构建和维护用于该服务的分区式索引。在一些实施例中,每个网络服务110具有其自己的索引服务器。在一些实施例中,独立索引服务120赋予用于多个其它网络服务110的编索引服务。索引服务120从网络服务110接收每个索引条目,并且向分布式索引123的一个分区发送它用于存储。索引服务120还从网络服务110接收每个搜索请求,并且选择分布式索引123的至少一个节点以处理搜索请求。针对不同请求变化选择的节点以分布处理请求的负荷。
举例而言,UE101和网络服务110使用公知、新型或者仍在开发的协议来相互通信并且与通信网络105的其它部件通信。在本文中,协议包括限定通信网络105内的网络节点如何基于通过通信链路发送的信息相互交互的规则集。协议在每个节点内的不同操作层有效,这些操作层从生成和接收各种类型的物理信号到选择用于传送那些信号的链路到那些信号指示的信息的格式、到标识在计算机***上执行的哪个软件应用发送或者接收信息。在开放***互连(OSI)参考模型中描述用于通过网络交换信息的在概念上不同的协议层。
通常通过交换离散数据分组来实现在网络节点之间的通信。每个分组通常包括(1)与特定协议关联的报头信息,以及(2)净荷信息,该净荷信息跟随报头信息并且包含可以独立于该特定协议来处理的信息。在一些协议中,分组包括(3)尾部信息,该尾部信息跟随净荷并且指示净荷信息的结束。报头包括信息,比如分组的源、它的目的地、净荷的长度和协议使用的其它性质。用于特定协议的净荷中的数据经常包括用于与OSI参考模型的不同更高层关联的不同协议的报头和净荷。用于特定协议的报头通常指示用于它的净荷中所含下一协议的类型。认为更高层协议封装于更低层协议中。在穿越多个异构网络、比如因特网的分组中包括的报头通常包括如OSI参考模型定义的物理(第1层)报头、数据链路(第2层)报头、网络间(第3层)报头和传送(第4层)报头以及各种应用层(第5层、第6层和第7层)报头。
在各种设备上执行的过程经常使用广泛已知和使用的网络通信客户端-服务器模型来通信。根据客户端-服务器模型,客户端过程向服务器过程发送包括请求的消息,并且服务器过程通过提供服务来响应。服务器过程还可以向客户端过程返回具有响应的消息。客户端过程和服务器过程经常在称为主机的不同计算机设备上执行并且使用用于网络通信的一个或者多个协议经由网络通信。术语“服务器”常规地用来指代提供服务的过程或者该过程在其上操作的主机。类似地,术语“客户端”常规地用来指代进行请求的过程或者该过程在其上操作的主机。如这里所用,除非根据上下文另有明示,术语“客户端”和“服务器”指代过程而不是主机。此外,服务器执行的过程可以出于包括可靠性、可伸缩性和冗余性以及其它方面的原因而分解成作为多个主机上的多个过程(有时称为等级(tier))来运行。在连接到通信网络的多数设备(称为节点)上可用的公知客户端过程是通过根据超文本传送协议(HTTP)格式化的消息来与提供网页的称为万维网(WWW)服务器的大量服务器中的任何服务器交互的万维网客户端(称为“web浏览器”或者简称为“浏览器”)。
在所示实施例中,每个UE101包括用于与在每个网络服务110内包括的WWW服务器通信的浏览器107。在一些实施例中,在一个或者多个UE101上包括用于网络服务110中的一个或者多个网络服务的单独服务客户端(未示出)。
图1B是根据一个实施例的索引服务分布式索引的部件的示图。举例而言,分布式索引123包括一个或者多个节点,每个节点具有包括增强型节点请求模块152的一个或者多个部件。在一些实施例中,索引服务120包括维护请求类别统计量数据结构156的请求类别统计量模块154。这些部件中的一个或者多个部件提供涉及分区式索引的搜索请求的增强型处理。设想这些部件的功能可以组合于一个或者多个部件中或者由在描绘的节点或者不同节点上的等效功能的其它部件执行。例如,在一些实施例中,请求类别统计量模块154的一些或者所有功能由增强型节点请求模块152一起执行,增强型节点请求模块152、请求类别统计量模块154和数据结构156构成图1A中描绘的增强型请求模块150。
在所示实施例中,分布式索引123包括用于第一索引的索引节点125a至索引节点125p(下文统称为索引节点125)并且包括用于第二索引的索引节点135a至索引节点135p’(下文统称为索引节点135),其中p指示第一索引中的分区数目而p’指示第二索引中的分区数目。在其它实施例中,分布式索引123包括用于更多或者更少索引的索引节点。每个索引节点125、135在至少一个索引分区中维护索引条目并且在这些搜索条目中搜寻至少一个索引。在所示实施例中,索引节点125a至索引节点125p分别对索引分区127a至127p(下文统称为索引分区127)中的索引条目操作。类似地,索引节点135a至索引节点135p’分别对索引分区137a至137p’(下文统称为索引分区137)中的索引条目操作。
当在搜索服务接收用于搜索索引之一的搜索请求时,将请求引向用于请求的索引的索引节点之一。接收请求的索引节点称为聚合器节点,并且负责用来自任何分区式索引条目实质上满足请求。索引服务120跨越不同索引节点分布多个请求,从而每个索引节点作为用于至少一些请求的聚合器节点来服务。这用于分布对搜索请求做出响应的负荷。如果有用于索引的其它索引节点,则聚合器节点确定请求来自这些其它索引节点的索引条目。如果有匹配索引条目(这里称为匹配),则聚合器从其它索引节点接收这些匹配,并且将匹配组合成经由索引服务过程120向请求网络服务110发送的一个响应。
根据各种实施例,每个索引节点125、135包括用于处理这样的搜索请求的增强型节点请求模块152。对请求来自哪些索引节点中的每个索引节点的多少条目的判决基于请求是否有确定性。如果不多于预定数目的索引条目集合实质上满足搜索请求,则搜索请求有确定性。例如在可用于销售的书的索引中,请求可以针对在标题中有“内战”的50本最近出版的书。即使使请求有确定性的预定集合数目是一,这一请求仍然是有确定性的请求。仅这一个有50个最近出版的标题的集合满足这一请求。类似地,请求可以针对在标题中有“内战”的10本最近出版的书中的8本书。多个集合实质上满足这样的请求(10个项目一次选择8个,约等于10的阶乘除以8的阶乘,10!/8!=10*9=90个集合)。如果使请求有确定性的预定集合数目是100,则这一请求有确定性。对照而言,针对按出版顺序排列的在标题中有“内战”的50本书的请求无确定性;索引中的在标题中有“内战”的数百本书中的任何50本书可以按出版日期来排列并且满足这一请求。数以千计的组合将满足这样的请求;并且即使预定集合数目为100,这一请求仍然不会有确定性。出于示例的目的,在下文中假设预定索引条目集合数目为了请求视为有确定性而是一。满足所有搜索标准的索引条目称为搜索的匹配。对搜索请求的响应可以包括匹配或者如下条目,该条目是近似匹配(满足几乎所有搜索标准)。
因此,***100包括接收用于搜索索引的当前请求,其中跨越通过网络通信端点数目为P的多个节点对索引分区。***100还包括确定当前请求是否有确定性,其中如果仅一个索引条目集合满足搜索请求,则搜索请求有确定性。并且***100包括基于当前请求是否有确定性来确定待请求的来自多个节点中的数目为N的节点中的每个节点的、数目为K的匹配。
虽然出于示例的目的而在图1A和图1B中在通信网络的特定节点上按特定顺序示出过程和数据结构为整体块,但是在其它实施例中,在网络的相同、更多或者更少节点上或者在一个或者多个数据库中按不同顺序布置或者省略一个或者多个过程或者数据结构或者其部分。或者包括一个或者多个附加过程或者数据结构。
图2A是根据一个实施例的索引分区数据结构200的示图。索引分区数据结构200是一个索引的索引分区127或者137之一的具体实施例。索引分区数据结构200如索引条目210和省略号所示多个索引条目。每个索引条目210包括两个或者更多字段,比如字段212、214、216、218和省略号所示其它字段,这些字段统称为索引字段212。每个字段保持如下数据,该数据指示用于对应参数的值。字段212中的一个或者多个字段可由网络服务110搜索,索引是针对该网络服务而维护的。
例如在书索引中,若干字段保持文字或者数字,这些文字或者数字代表用于对应参数的值,这些参数包括在一个或者多个参数的任何组合中的标题、作者、国际标准书号(ISBN)、出版日期、版权日期、评论和评级以及其它参数。类似地,在游戏索引中,若干字段保持文字或者数字,这些文字或者数字代表用于对应参数的值,这些参数包括在一个或者多个参数的任何组合中的名称、游戏类型、销售商、游戏在其上操作的平台和评级以及其它参数。
虽然出于示例的目的而在图2A至图2C中在特定布置中描绘字段、条目、消息和数据结构为整体块,但是在其它实施例中,按不同顺序或者在一个或者多个消息或者通信网络的一个或者多个节点上的一个或者多个数据库中布置或者省略一个或者多个字段、条目、消息、数据结构或者其部分,或者包括一个或者多个附加字段、条目或者数据结构。
图2B是根据一个实施例的搜索请求消息250的示图。从网络服务110向索引服务120发送搜索请求消息250以基于与特定用户的UE101的一些交互来搜索索引中的特定索引。搜索服务120向特定索引的索引节点之一转发请求。该索引节点作为聚合器节点来服务。如果聚合器节点确定还将使相同特定索引的另一索引节点参与,则从聚合器索引节点向用于特定索引的一个或者多个其它索引节点发送搜索请求250。
在所示实施例中,搜索请求消息250包括索引ID字段251、类型字段253、结果大小字段255、置信度水平字段257和后排序字段259中的两个或者多个字段以及一个或者多个搜索标准。每个搜索字段由字段集合指示,比如索引字段标识符(ID)字段262a、值标准字段264a和预排序条件字段266a。第二标准由字段262b、264b和266b指示。后续字段(如果有)由省略号代表。
索引ID字段251保持如下数据,该数据指示将搜索索引服务120管理的两个或者更多索引中的哪个索引。在其中索引服务120维护仅一个索引的一些实施例中,省略字段251。指定索引ID的优点在于一个索引服务120可以管理多个索引。索引ID字段251是用于实现这一优点的示例性手段。
类型字段253保持如下数据,该数据指示请求消息250是否来自网络服务110或者从索引服务120到聚合器节点或者从聚合器节点到相同索引的另一索引节点。指定类型的优点在于对来自聚合器索引的请求做出响应的索引节点简单地检查其自己的索引分区,而无需消耗计算资源以确定和请求来自其它索引节点的贡献。类型字段253是用于实现这一优点的例子手段。在一些实施例中,有与每个索引节点125的两个相异接口(比如API)。一个接口由聚合器节点上的客户端调用,而另一接口由另一索引节点上的聚合器节点调用。在这样的实施例中,聚合器和另一索引节点都无需使用任何ID以知道调用来自何处以及对调用的响应是什么。在这样的实施例中,省略类型字段253。
结果大小字段255保持如下数据,该数据指示待返回的都与所有搜索标准匹配的目标索引条目数目T,即待返回的目标匹配数目T。在一些实施例中,独立于请求消息来确定目标匹配数目,例如确定为默认数量或者通过计算将在匹配标准时消耗的计算能力数量,并且省略字段255。指定目标数目T的优点在于未将计算和带宽资源浪费在聚合和返回网络服务110和UE101的用户都不希望解析的过量数目的匹配。结果大小字段255是用于实现这一优点的例子手段。
置信度水平字段257保持如下数据,该数据指示用于针对有确定性的请求获得单个匹配集合的置信度水平。在一些实施例中,独立于请求消息来确定置信度水平,例如确定为默认数量或者通过计算从100%置信度偏离的成本益处,并且省略字段255。指定置信度水平的优点在于未将计算和带宽资源消耗在聚合和返回不可能对单个匹配集合有贡献的匹配。置信度水平字段257是用于实现这一优点的例子手段。
后排序字段259保持如下数据,该数据指示如何对包括多个条目匹配的响应中的这样的匹配排序。例如后排序字段259保持如下数据,该数据指示索引字段和用于对匹配排序的升序或者降序。
索引字段ID字段262a、262b以及省略号指示的其它索引字段ID字段(统称为索引字段ID字段262)保持如下数据,该数据指示索引条目210中的字段212之一。任何方法可以用来指示索引字段、例如按照它在索引条目中的序数或者按照它的参数名。例如在书索引中的标题字段由文字“标题”或者序数“1”指示。
值标准字段264a、264b以及省略号指示的其它值标准字段(统称为值标准字段264)保持如下数据,该数据指示匹配索引条目将满足的一个或者多个值或者值范围。例如值标准字段保持如下数据,该数据指示“包括‘内战’”或者“排除‘计算机’”或者“始于字母‘Ca’至‘Ebo’”。如果所有值可接收,例如字段仅用于排序,则值标准包括指示“空值”或者等效值的数据或者省略字段。
预排序字段266a、266b以及省略号指示的其它预排序字段(统称为值标准字段266)保持如下数据,该数据指示用于将在确定最终匹配集合之前执行的排序的一个或者多个排序标准。如果无预排序字段,例如在字段262中指示的索引字段仅用于选择,则预排序字段包括指示“空值”或者等效值的数据或者省略字段。例如为了包括最旧出版日期,用于出版日期字段的预排序字段266保持指示“最旧”或者等效值的数据。例如为了包括最高评级的书,用于评级字段的预排序字段266保持指示“最高”或者等效值的数据。通常,在任何预排序字段266中的除了“空值”或者“等效值”之外的条目使消息250的搜索请求有确定性。
图2C是根据一个实施例的请求类别统计量数据结构270的图。请求类别统计量数据结构270是请求类别统计量数据结构156的一具体实施例。在数据结构270中存储的请求类别统计量在一些实施例中用来基于请求的类别和以往经验估计来自普通节点的预计匹配数目。例如在一些实施例中,形成请求的网络服务110被编程用于仅提交有限范围的请求类型(例如按作者或者按标题和出版日期),并且向每个类型分配类别。在所示实施例中,按照在对应请求消息250的请求消息字段262中列举的索引字段的汇集和在请求消息250的字段250中如果有则指示的结果大小对请求归类。由于可以请求宽范围的结果大小,所以在所示实施例中,每个类别包括结果大小范围、例如1-10、11-50、51-100、101-500、501-1000、1001-5000、5001-10000或者大于10000。在一些实施例中,估计未基于类别统计量;并且省略数据结构159(包括实施例270)。
对于索引服务接收的每个不同类别的请求,向请求类别统计量数据结构270添加类别条目字段271。其它类别条目字段由省略号指示。每个类别条目字段271包括请求中的字段列表字段281、请求的大小范围字段283、请求数目字段285、平均百分比响应字段287和来自一个节点的最多确定性条目字段289。
字段列表字段281保持如下数据,该数据指示在任何单个请求消息的索引字段ID字段262中记载的所有索引字段的集合。例如一些请求消息包括仅一个索引字段(例如作者),而其它请求消息包括更多索引字段(例如标题和出版日期或者作者和评级)。
请求的大小范围字段283保持如下数据,该数据指示如上文描述的用来定义类别的范围之一。例如字段283保持如下数据,该数据指示范围501-1000;并且在该类别中包括如下请求,这些请求在结果大小字段255中指示这一范围中的目标大小。
请求数目字段285保持如下数据,该数据指示索引服务处理的落入字段281和283定义的类别内的请求数目。针对每个类别服务的请求越多,统计量就越代表该类别。在一些实施例中,也记录先前处理的请求的时间;并且向对更近请求的响应给予更多权值。
平均百分比响应字段287保持如下数据,该数据指示来自一个节点的平均百分比响应、即从节点返回的匹配数目除以向节点请求的次数的100%倍。例如,如果一个请求消息在字段255中指示500个匹配这一目标大小T,但是接收请求的索引节点仅在它的本地分区上发现350个匹配,则对这样的请求的百分比响应是70。向请求类别统计量模块154传递这一信息,该请求类别统计量模块递增字段285并且计算用于类别的新平均百分比响应。新平均百分比响应存储于字段287中。在一些实施例中,在字段287中的值按照它代表的请求数目来加权。例如,如果在类别中已经有产生平均50%响应的9个先前请求(如字段285中所示),则加上用于最近请求的70%响应产生新平均值(9*50%+70%)/10=52%。
在一些实施例中,随着索引增长,将字段285和287定期地、例如每三个月重置成零,从而统计量代表索引的最新状态。在包括请求时间的一些实施例中,未重置字段,但是向更近响应给予更多权值。
来自一个节点的最多确定性条目字段289保持如下数据,该数据指示任何一个分区向用于类别中的请求的确定性结果贡献的最多匹配。在这一统计量中未包括非确定性的请求。例如,如果跨越200个分区随机分布索引条目并且针对600个匹配、例如针对自从1960年出版的在标题中包括内战的600本最高评级的书接收有确定性的请求,则不可能的是在一个分区中发现所有600本最高评级的书。更可能的是在每个分区中有600/200=3本这一级的最高评级的书。然而为了100%确信在对请求的响应中返回600本最高评级的书,在一些实施例中,聚合器节点请求来自200个节点中的每个节点的600本最高评级的书。假设每个节点具有至少600本这样的书,向聚合器返回多达120000个条目,该聚合器然后对它们排序以发现用于在响应中作为匹配返回的最高评级的600个条。聚合器节点能够看见600个匹配中的多少个匹配来自每个节点。出于示例的目的,假设一个节点贡献匹配中的11个匹配而所有其它节点贡献更少、一些节点甚至未贡献匹配。在这一例子中,任何一个分区向确定性结果贡献的最多匹配是11个。继续这一例子,如果11大于已经在字段289中存储的值,则在字段289中存储值11。这向***100通知如果在这一类别中接收有确定性的请求,则寻求来自每个节点的11个匹配而不是600个可能就足够了。显然的优点是大量减少在每个节点上消耗的带宽和计算资源。字段289是用于实现这一优点的例子手段。
在其它实施例中,在每个类别条目字段271中包括更多或者更少或者不同统计量。
图3A是根据一个实施例的用于增强型处理涉及分区式索引的搜索请求的过程300的流程图。在一个实施例中,增强型节点请求模块152执行过程300并且例如实施于如图5中所示包括处理器和存储器的芯片集或者如图4中描绘的通用计算机400中。在一些实施例中,涉及到更新或者取回来自请求类别统计量数据结构156的统计量的一个或者多个步骤涉及到索引服务120上的请求类别统计量模块154。虽然出于示例的目的而在图3A中按特定顺序描绘步骤为整体块,但是在其它实施例中,按不同顺序或者在时间上重叠、串行或者并行执行或者省略一个或者多个步骤或者其部分,或者添加一个或者多个步骤或者在某一方式组合中改变该过程。
在步骤301中接收用于在分区式索引中搜索匹配的搜索请求消息。例如搜索请求消息250由在索引节点125a的增强型节点请求模块152接收。因此,步骤301涉及到接收针对搜索索引的当前请求,其中跨越通过网络通信的数目为P的多个节点对索引分区。
在步骤301期间,还确定在响应中返回的目标匹配数目T。在一些实施例中,在请求中例如在字段255中指定目标数目T。在一些实施例中,推断目标匹配数目T例如为默认目标大小(例如100个匹配)或者最大目标大小(例如10000个匹配)或者基于某一其它编程的逻辑、比如当天时间或者在网络上的拥塞或者在一个或者多个索引节点上的处理器利用率。因此,步骤301包括确定响应于当前请求而返回的目标匹配数目T。
在步骤303中确定请求的类别。例如确定请求是否为针对1至10本书的作者请求或者针对501至1000本书的标题和出版日期搜索以及其它类别。在未保持请求类别统计量的一些实施例中,省略步骤303。
在步骤305中确定请求是否来自聚合器节点或者索引服务、例如索引服务120。如果请求来自索引服务,则接收节点是如下文更具体描述的聚合器节点,该聚合器节点管理来自用于索引的其它分区的零个或者更多其它节点的响应。在各种实施例中,可以按照请求中的类型字段253的内容或者按照用来发送请求的相异接口确定请求消息是否来自聚合器节点。在其它实施例中,索引服务120和索引节点125的网络地址对于一个索引而言已知,并且该确定基于如在消息250的协议报头字段(未示出)中指示的消息源的网络地址。
如果在步骤305中确定请求来自聚合器节点,则在步骤307中确定与请求标准的本地匹配、即确定在本地分区上的索引条目之中的与搜索标准的匹配。在保持请求类别统计量的实施例中,直接地或者通过向请求类别统计量模块154报告匹配数目来在请求类别统计量数据结构156中记录匹配数目。例如,如果在索引节点125a上的模块152从索引节点125p接收搜索请求,则节点125p是聚合器;并且在步骤307中,在节点125a上的模块152发现本地索引分区127a上的与请求的匹配。请求的目标数目大小T和本地匹配数目L用来计算在请求类别统计量数据结构156的字段287中包括的响应百分比。控制然后传向步骤355以如下文更具体描述的那样排序和发送匹配。
如果在步骤305中确定请求未来自聚合器节点,例如如果请求消息来自索引服务,则在本地节点上的模块152是聚合器并且控制传向步骤311和后继步骤。出于示例的目的,假设在索引节点125a上的模块152已经从索引服务接收请求消息;因此节点125a是聚合器节点。
在步骤311中确定请求是否有确定性。例如确定在请求消息250中的预排序字段266中的任何预排序字段是否保持与“空值”或者它的等效值不同的数据。如果是这样,则控制传向下文描述的步骤331和后继步骤。因此步骤311涉及到确定当前请求是否有确定性,其中如果仅一个索引条目集合完全满足搜索请求,则搜索请求有确定性。在311的后继步骤中基于当前请求是否有确定性来确定待请求的来自多个节点中的数目为N的节点中的每个节点的、数目为K的匹配。
如果在步骤311中确定请求无确定性,则在步骤313中确定本地分区上的匹配。在步骤313中发现本地匹配数目L。因此步骤313包括确定多个节点中的本地节点的本地分区上的数目为L的匹配。在保持请求类别统计量的实施例中,直接地或者通过向请求类别统计量模块154报告响应来在请求类别统计量数据结构156中记录百分比响应。例如百分比响应被计算为100*L/T并且用来更新字段287的内容;并且递增字段285。也计算短缺量为数目T–L。因此步骤313包括确定短缺量等于数目T减去数目L。控制串行步骤323以确定是否已经发现足够匹配。
在一些实施例中,步骤313包括确定待请求的来自其它节点中的每个节点的匹配数目K为约等于或者大于短缺量,从而单个其它节点提供需要的所有匹配。因此,在一些实施例中,K≥(T-L),并且步骤313涉及到确定数目K为大于或者等于短缺量。
出于示例的目的,假设非确定性的请求是针对按出版日期后排序的、自从1960年出版的在标题中有“内战”的600本书。希望的目标条目数目T是600;并且如果未省略步骤303,则请求的类别是在从501-1000的大小范围中的标题和出版日期。在步骤313期间,在索引节点125a上的模块152在本地分区127a中搜索在标题中有内战并且出版日期在1/1/1960或者之后的索引条目。出于示例的目的,假设发现360个匹配(即L=360)。百分比响应是100%*360/600=60%;并且并入于请求类别统计量数据结构156中、例如递增数据结构270的递增字段285并且更新字段287。短缺量然后是600–360=240;并且待请求的来自一个或者多个其它索引节点中的索引节点的匹配数目K大于或者等于240。使K大于短缺量的优点在于可以容许某一数目的重复索引条目或者无效索引条目或者其它错误而未进行附加请求。
在步骤323中确定是否已经发现足够匹配以满足请求。例如确定短缺量是否不大于零。如果已经发现足够匹配,则控制传向下文描述的步骤355以排序和发送响应。如果未发现足够匹配,例如如果短缺量大于零,则控制传向步骤315和后继步骤以确定请求来自数目为P的多个节点中的多少个节点N中的每个节点的多少个匹配K。
在步骤315中确定类别统计量是否可用于当前请求的如在步骤303中确定的类别。如果在步骤315中确定类别统计量不可用,则在步骤317中基于发现的本地匹配数目L确定参与满足请求的其它索引节点的数目N。如果未确定请求类别(例如省略步骤303)或者用于当前请求的类别的请求数目太小(例如少于20个),则类别统计量不可用。
在步骤317期间基于在本地分区上发现的匹配数目L确定待请求的K个匹配来自的其它索引节点的数目N。假设普通分区包含与在本地分区上的匹配数目L相同数量级的匹配。为了考虑从一个分区到另一分区的匹配数目差异,引入大于1的缓冲因子,并且如等式1给出的那样确定数目N。
N=CEIL{(T–L)*C/L} (1)
其中CEIL是函数,该函数输出比在括号{}内的变元值更大的最小整数。在各种实施例中,从在从约一(1)至约十(10)的范围内选择并且优选地从在从约二(2)至约五(5)的范围内选择缓冲因子C。因此,在一些实施例中,步骤317涉及到通过将短缺量(T-L)与缓冲因子(C)的乘积除以本地分区上的匹配数目L来确定数目N。在至少一些实施例中,缓冲因子大于一。控制然后传向下文描述的步骤321。
例如针对T=600并且L=360并且C=3,等式1产生N=2。因此向N=2个其它索引节点中的每个索引节点发送针对K=240个匹配的请求。这赋予节约向198个其它索引节点发送请求的带宽和计算资源的优点。通过向N个其它索引节点并行发送请求,计算数目N赋予节省如下响应时间的优点,如果先向一个其它节点发送针对K个匹配的请求、该节点然后返回少于K个匹配,然后串行地请求来自不同索引节点的新的剩余匹配直至获得所有T个匹配,则将消耗该响应时间。
如果在步骤315中确定类别统计量可用,则在步骤319中基于统计量确定参与满足请求的其它索引节点数目N。例如在步骤319期间基于如根据类别统计量确定的、针对相同类别中的其它请求而先前返回的匹配平均数目来确定待请求的K个匹配来自的其它索引节点的数目N。例如响应于与当前请求相似的先前请求从节点返回平均A个匹配。例如在所示实施例中,按照等式2计算A的值。
A=K*Rc (2)
其中Rc是来自类别条目271的字段287的针对请求的相对(百分比)响应,该类别条目对应于将由聚合器节点发出的转发请求的类别。将由聚合器发出的转发请求消息250与当前请求相似,因为它包括当前搜索请求消息250的字段ID字段262中的所有字段,但是在结果大小字段255中指示K的值而不是T的值。因此步骤319包括确定响应于与当前请求相似的先前请求的来自节点的平均匹配数目A。
例如面临在1960年之后的内战书短缺240个条目的聚合器节点将生成请求,该请求属于大小范围为101-500的标题和出版日期类别。如上文描述的那样,出于示例的目的而假设这样的请求经历52%的平均百分比响应。因此根据等式2,针对平均有K=240个匹配的请求返回A=240*52%=124.8个匹配。
在一些实施例中,如上文针对步骤317描述的那样,为了考虑从一个分区到另一分区的匹配数目差异,引入大于1的缓冲因子C。因此,缓冲因子大于一。如等式3给出的那样计算待请求的K个匹配来自的节点的数目N。
N=CEIL{(T–L)*C/A} (3)
因此步骤319包括通过将短缺量(T-L)与缓冲因子(C)的乘积乘以数A来确定数目N。
例如针对如出于示例的目的而假设那样T=600并且L=360并且C=3并且A=124.7,等式3产生N=6。因此,向N=6个其它索引节点中的每个索引节点发送针对K=240个匹配的请求。这赋予节约向194个其它索引节点发送请求的带宽和计算资源的优点。通过向6个其它索引节点并行发送请求,这赋予节省如下响应时间的优点,如果先向一个其它节点发送针对240个匹配的请求、该节点然后返回少于K个匹配(例如约125个匹配),然后串行地请求来自不同索引节点的新的剩余匹配直至获得所有T个匹配,则将消耗该响应时间。
在省略步骤303的一些实施例中,也省略步骤315和319。
在步骤321向N个其它索引节点中的每个索引节点发送针对K个匹配的请求,并且从远程(即非本地)分区接收具有匹配的响应。然后将返回的远程匹配与已经获得的匹配相加。如果有新的短缺量则通过从目标匹配数目T减去聚合的匹配总数来计算该短缺量。控制然后传回至上文描述的步骤323以确定是否已经聚合足够匹配以达到目标匹配数目T,即是否有为零或者更少的短缺量。如果无短缺量,则控制传向步骤355。在一些实施例中,如果在一次或者两次通过步骤323之后仍然有短缺量,则向所有剩余索引节点发送针对任何剩余短缺量的请求。这赋予减少在估计的节点数目不足以完全满足请求时的偶然境况中获得完整响应的延迟的优点。
在步骤355中丢弃超过目标匹配数目T的任何匹配并且如请求消息250的字段259指示的那样对剩余T个匹配排序。在一些实施例中,先对获得的匹配排序,然后丢弃沿着排序列表最远的过量匹配。响应当前请求来发送剩余T个匹配,例如在一个或者多个响应消息中向索引服务120发送T个匹配。索引服务120向适当网络服务110转发该一个或者多个响应消息。
如果在步骤311中确定请求有确定性,则在步骤331中确定请求是否允许概率方式、即确定是否必须确信地(置信度水平=100%)或者以少于100%的置信度水平有概率地提供用于请求的单个匹配集合。K的确定依赖于这一选择。因此步骤331涉及到基于置信度水平确定数目K。例如如果出于示例的目的而假设搜索请求消息针对在1960年之后出版的在标题中包括“内战”的600本最高评级的书,则请求有确定性。如果请求消息250在字段257中包括少于100%的置信度水平,则请求有概率。因此步骤331涉及到确定响应与完全满足当前请求的一个索引条目集合相同的置信度水平。在任一情况下,将向每个索引节点发送请求。因此如果当前请求有确定性,则确定待请求的来自数目为N的节点中的每个节点的匹配数目K还包括确定节点数目N为等于多个节点中的节点数目P。基于置信度水平确定待请求的匹配数目K。
如果请求确定性,例如如果置信度字段247保持如下数据,该数据指示等于100%的置信度水平,则控制传向步骤351。在步骤351中,请求来自索引的所有P个索引节点的目标匹配数目T,这些索引节点包括本地分区和P-1个远程分区。因此根据步骤351,如果置信度水平是100%,则数目K等于目标数目T。在步骤353中,从每个索引节点接收具有T个或者更少匹配的本地和远程匹配。返回少于T个匹配的索引接待你具有包含少于T个匹配的分区。具有T个或者更多匹配的分区式索引节点返回T个预排序匹配,例如T个最旧或者T个最高评级或者来自聚合器的请求的预排序字段255指示的无论任何匹配。步骤353包括聚合和排序上至P*T个条目并且选择聚合的T个匹配。控制传向上文描述的步骤355以对聚合的T个匹配后排序和发送。
例如,如果请求确定性,则从本地分区取回并且请求来自其它199个索引节点中的每个索引节点的在标题中有“内战”的、在1960年之后出版的600本最高评级的书。在步骤353中从本地和远程分区接收上至120,000个索引条目。在355中对上至120,000个条目排序从而仅保持最高评级的600个条目。例如按出版日期后排序并且在一个或者多个响应消息中向索引服务120发送那些600个条目用于向适当网络服务110转发。
然而如果在步骤331中确定允许概率方式,则将根据统计量或者索引条目跨越P个分区的假设随机分布来请求来自每个索引节点的少于T个匹配。例如,如果置信度字段257指示少于100%的置信度水平或者字段257不存在,则允许概率方式。例如来自每个分区的平均有3个匹配应当在600个最高评级的条目(跨越200个接待你随机划分请求的600个条目)之中。请求的来自每个条目的匹配数目越大,600个保留条目就越可能与满足请求的单个集合相同。
在步骤333中确定条目统计量是否可用于当前请求的如在步骤303中确定的类别。如果在步骤333中确定类别统计量不可用,则在步骤339中基于关于在当前搜索中涉及到的索引字段中的任何索引字段随机分布索引条目这样的假设来确定待请求的来自每个索引节点的匹配数目K。如果未确定请求类别(例如省略步骤303)或者用于当前请求的类别的请求数目太小(例如少于20个),则类别统计量不可用。
在步骤339中基于跨越P个分区式索引条目分布随机这样的假设来确定待请求的来自每个索引节点的匹配数目K。已知每个分区的有确定性的匹配(即如下匹配,这些匹配是完全满足搜索标准的一个索引条目集合的成员)的预计平均数目为T/P(这里由符号□代表)。然而如果选择K等于预计数目□,则分区中的大量——约一半——分区将具有少于预计数目的有确定性的匹配。K的值越大,它将越可能包括分区中的有确定性的匹配。为了考虑从一个分区到另一分区的有确定性的匹配数目差异,引入大于1的确定性缓冲因子D。根据等式4选择K的值。
K=CEIL{(T/P)*D}=CEIL□□□□*D} (4)
在各种实施例中,从在从约P/10至约P/2的范围内选择确定性缓冲因子D。在优选实施例中,D约为P/5。控制然后传向下文描述的步骤341。因此根据在步骤339中的等式4,如果置信度水平少于100%,则数目K等于目标数目T除以多个节点中的节点数目P的比值的缓冲因子D倍的乘积。
在一些实施例中,确定性缓冲因子D依赖于在置信度字段257中指示的置信度水平。例如在一些实施例中,按照等式5给出确定性缓冲因子。
D=P/[(100–置信度水平)+1] (5)
在其它实施例中,波束分布用来选择D。泊松分布是离散概率分布,该离散概率分布表达如果多个事件(有确定性的匹配)以已知平均速率(例如□=T/P)和并且与区间(例如分区)独立出现则这些事件在区间中出现的概率。因此,泊松分布可以用来估计K的特定值将包括有确定性的匹配的置信度水平。图3B是在一些实施例中使用的图示泊松分布的图形370。水平轴是随机事件的出现次数,而竖轴是该出现次数在区间期间(例如在分区中)的概率。迹线381示出当在区间中的预计出现次数(□)是1时的泊松分布。迹线382示出当在区间中的预计出现次数(□)是4时的泊松分布。迹线381示出当在区间中的预计出现次数(□)是10时的泊松分布。
如从迹线382可见,当在区间中的有确定性的匹配的预计数目□是4时,有个别区间将具有零至10个有确定性的匹配的大概率。但是多于十个匹配的概率很小。如果这一小剩余概率乘以分区数目P,则可以计算每个分区使用10个匹配(D=10/4=2.5)将遗漏一个或者多个有确定性的匹配的概率估计在这一情况下遗漏有确定性的匹配的可能性少于约10%。因此根据一些实施例,计算D的值,从而基于泊松分布的遗漏一个或者多个有确定性的匹配的概率约等于100%与在字段257中指示的置信度区间之差。
在其它实施例中,使用其它概率分布。因此,在各种实施例中,步骤339涉及到比一大如下数量的缓冲因子,该数量依赖于置信度水平。
例如,针对T=600并且P=200并且D=P/5=40,等式4产生K=120。因此向P-1个其它索引节点中的每个索引节点发送针对K=120个匹配的请求,并且从本地分区取回120个最高评级的条目。这赋予节约向所有其它索引节点发送针对60个匹配的请求的带宽和计算资源的优点。使用泊松分布以推断D的值=2.5,等式4产生与90%以上的置信度水平关联的高效得多的数目K=8。
如果在步骤333中确定类别统计量可用,则在步骤335中基于统计量确定待请求的来自每个索引节点的匹配数目K。例如在步骤335期间基于响应于针对100%置信度的先前有确定性的请求、来自一个节点的最大共享数目M来确定匹配数目K,其中先前请求与当前请求相似。这一个值存储于请求类别统计量数据结构270的字段289中。因此,在一些实施例中,确定待请求的来自数目为N的节点中的每个节点的匹配数目K还包括基于数目M确定数目K。
例如对针对在1960年之后的内战书中的600个最高评级的条目的请求做出响应的聚合器节点将生成请求,该请求属于具有大小范围501-1000的标题和出版日期以及评级类别。出于示例的目的而假设这样的请求经历来自单个节点的最大数目为11的有确定性的匹配。
在一些实施例中,为了考虑从一个分区到另一分区和一个请求到另一请求的匹配数目差异,引入大于1的缓冲因子C。如等式6给出的那样计算待请求的K个匹配来自的节点的数目N。
K=CEIL□□□□*C (6)
例如针对M=11并且C=2,等式6产生K=21。因此,向每个索引节点发送针对K=21个匹配的请求。这赋予节约向所有200个索引节点发送针对600个匹配的请求的带宽和计算资源。
在省略步骤303的一些实施例中,也省略步骤333和步骤335。
在步骤341本地处理并且向P-1个其它索引节点中的每个索引节点发送针对K个匹配的请求,并且从远程(即非本地)分区接收提供匹配的响应。然后将返回的远程匹配与本地匹配相加。如果有短缺量则通过从目标匹配数目T减去聚合的匹配总数来计算该短缺量。控制然后传回至步骤343以确定是否已经聚合足够匹配以达到目标匹配数目T,即是否有为零或者更少的短缺量。如果无短缺量,则控制传向上文描述的步骤355。在一些实施例中,如果在一次或者两次通过步骤333之后仍然有短缺量,则向所有索引节点发送针对K=T个匹配的请求。这赋予即使概率方式在一些罕见实例中有欠缺、仍然再现有用结果的优点。
可以经由软件、硬件、固件或者软件和/或固件和/或硬件的组合有利地实施这里描述的用于处理涉及分区式索引的搜索请求的过程。例如可以有利地经由处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等实施这里描述的过程。下文具体描述这样的用于执行描述的功能的示例硬件。
图4图示本发明的实施例可以实施于其上的计算机***400。虽然关于特定设备或者装备描绘计算机***400,但是设想图4内的其它设备或者装备(例如,网元、服务器等)可以部署***400的所示硬件和部件。计算机***400被编程(例如,经由计算机程序代码或者指令)用于提供如这里描述的那样处理涉及分区式索引的搜索请求并且包括通信机制、比如用于在计算机***400的其它内部与外部部件之间传递信息的总线410。将信息(也称为数据)表示为可测量现象的物理表达(该现象通常为电压),但是在其它实施例中包括比如磁、电磁、压力、化学、生物、分子、原子、亚原子和量子互作用这样的现象。例如北和南磁场或者零和非零电压代表二进制数(位)的两个状态(0,1)。其它现象可以代表更高基数的数。多个同时量子状态在测量之前的叠加代表量子位(qubit)。一个或者多个数的序列构成数字数据,该数字数据用来代表用于字符的编号或者代码。在一些实施例中,称为模拟数据的信息由在特定范围内的可测量值的近连续统代表。计算机***400或者其部分构成用于处理涉及分区式索引的搜索请求的一个或者多个步骤的装置。
总线410包括一个或者多个并行信息导体,从而在耦合到总线410的设备之间快速传送信息。用于处理信息的一个或者多个处理器402与总线410耦合。
一个处理器(或者多个处理器)402对信息执行如与处理涉及分区式索引的搜索请求有关的计算机程序代码指定的操作集。计算机程序代码是用于处理器和/或计算机***的操作以执行指定功能的指令或者提供指令的语句的集合。例如,可以用编译成处理器的本机指令集的计算机编程语言编写代码。也可以使用本机指令集(例如,机器语言)来直接编写代码。操作集包括从总线410带入信息以及将信息置于总线410上。操作集也通常包括比较两个或者更多信息单位、移位信息单位的位置以及比如通过加法或者乘法或者逻辑运算如OR、异或(XOR)和AND来组合两个或者更多信息单位。称为指令的信息(比如,一个或者多个数的操作代码)向处理器代表处理器可以执行的操作集的每个操作。将由处理器402执行的操作序列、比如操作代码序列构成也称为计算机***指令或者简称为计算机指令的处理器指令。可以独自或者组合实施处理器为机械、电、磁、光学、化学或者量子部件以及其它部件。
计算机***400也包括耦合到总线410的存储器404。存储器404、比如随机存储器存储器(RAM)或者其它动态存储设备存储信息,该信息包括用于处理涉及分区式索引的搜索请求的处理器指令。动态存储器允许其中存储的信息由计算机***400改变。RAM允许在称为存储器地址的位置存储的信息单位与在邻近地址的信息独立地存储和取回。存储器404也由处理器402用来在执行处理器指令期间存储临时值。计算机***400也包括耦合到总线410的只读存储器(ROM)406或者其它静态存储设备,该ROM或者其它静态存储设备用于存储计算机***400未改变的包括指令的静态信息。一些存储器由在失去电力时丢失在其上存储的信息的易失性储存器组成。非易失性(持续)存储设备408(比如磁盘、光盘或者闪卡)也耦合到总线410,该非易失性(持续)存储设备用于存储即使在计算机***400被关断或者以别的方式失去电力时仍然持续的包括指令的信息。
从外部输入设备412、比如包含由人类用户操作的文字数字键的键盘或者传感器向总线410提供信息用于由处理器使用,该信息包括用于型处理涉及分区式索引的搜索请求的指令。传感器检测在它附近的条件并且将那些检测变换成与用来代表计算机***400中的信息的可测量现象兼容的物理表达。主要用于与人类交互的、耦合到总线410的其它外部设备包括用于呈现文字或者图像的显示设备414、比如阴极射线管(CRT)或者液晶显示器(LCD)或者等离子体屏幕或者打印机以及用于控制在显示器414上呈现的小光标图像的位置并且发出与在显示器414上呈现的图元关联的命令的指示设备416、比如鼠标或者跟踪球或者光标方向键或者运动传感器。在一些实施例中、例如在其中计算机***400自动执行所有功能而无人类输入的实施例中,省略外部输入设备412、显示设备414和指示设备416中的一个或者多个设备。
在所示实施例中,专用硬件、比如专用集成电路(ASIC)420耦合到总线410。专用硬件被配置用于出于特殊目的而足够快地执行处理器402未执行的操作。专用IC的例子包括用于为显示器414生成图像的图形加速器卡、用于加密和解密通过网络发送的消息的密码板、话音识别以及与特殊外部设备的接口,这些特殊外部设备比如是反复执行用硬件更高效实施的操作的某一复杂序列的机器人手臂和医疗扫描装备。
计算机***400也包括耦合到总线410的通信接口470的一个或者多个实例。通信接口470提供与多种外部设备的单向或者双向通信耦合,这些外部设备用它们自己的处理器操作、比如打印机、扫描仪和外部盘。一般而言,耦合是与连接到本地网络480的网络链路478,多种外部设备连接到该本地网络,这些外部设备具有它们自己的处理器。例如通信接口470可以是个人计算机上的并行端口或者串行端口或者通用串行总线(USB)端口。在一些实施例中,通信接口470是提供与对应电话线类型的信息通信连接的综合服务数字网络(ISDN)卡或者数字用户线(DSL)卡或者电话调制解调器。在一些实施例中,通信接口470是线缆调制解调器,该调制解调器将总线410上的信号转换成用于通过同轴线缆的通信连接的信号或者用于通过光纤线缆的通信连接的光学信号。作为另一例子,通信接口470可以是用于提供与兼容LAN、比如以太网的数据通信连接的局域网(LAN)卡。也可以实施无线链路。对于无线链路,通信接口470发送或者接收或者既发送又接收承载信息流(比如,数字数据)的电信号、声信号或者电磁信号,这些信号包括红外线信号和光学信号。例如在无线手持设备,比如移动电话如蜂窝电话中,通信接口470包括称为无线电收发器的无线电频带电磁发送器和接收器。在某些实施例中,通信接口470实现与通信网络105的连接用于处理UE101的涉及分区式索引的搜索请求。
如这里所用术语“计算机可读介质”指代参与向处理器402提供信息的任何介质,该信息包括用于执行的指令。这样的介质可以采用许多形式,这些形式包括但不限于计算机可读存储介质(例如非易失性介质、易失性介质)和传输介质。非瞬态介质、比如非易失性介质例如包括光盘或者磁盘、比如存储设备408。易失性介质例如包括动态存储器404。传输介质例如包括同轴线缆、铜线、光纤线缆和经过空间行进而无接线或者线缆的载波、比如声波和电磁波,这些电磁波包括无线电波、光波和红外线波。信号包括通过传输介质传输的在幅度、频率、相位、极化或者其它物理性质上的人为瞬态变化。常见计算机可读介质形式例如包括软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、CDRW、DVD、任何其它光学介质、打孔卡、纸带、光学标记片、具有孔图案或者其它光学可识别戳记的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或者盒、载波或者计算机可以从其读取的任何其它介质。术语计算机可读存储介质这里用来指代除了传输介质之外的任何计算机可读介质。
在一个或者多个有形介质上编码的逻辑包括计算机可读存储介质上的处理器指令和专用硬件,比如ASIC420中的一项或者两项。
网络链路478通常通过一个或者多个网络使用传输介质向使用或者处理信息的其它设备提供信息通信。例如网络链路478可以通过本地网络480提供与主机计算机482或者与因特网服务提供商(ISP)操作的装备484的连接。ISP装备484又通过现在普遍称为因特网490的一个或者多个公共全球范围的分组交换通信网络提供数据通信服务。
连接到因特网的称为服务器主机492的计算机托管响应于通过因特网接收的信息提供服务的过程。例如,服务器主机492托管提供信息的过程,该信息代表用于在显示器414呈现的视频数据。设想***400的部件可以在各种配置中部署于其它计算机***、例如主机482和服务器492内。
本发明的至少一些实施例与将计算机***400用于实施这里描述的技术中的一些或者所有技术有关。根据本发明的一个实施例,计算机***400响应于处理器402执行存储器404中包含的一个或者多个处理器指令的一个或者多个序列来执行那些技术。可以从另一计算机可读介质,比如存储设备408或者网络链路478向存储器404中读取也称为计算机指令、软件和程序代码的这样的指令。对存储器404中包含的指令序列的执行使处理器402执行这里描述的方法步骤中的一个或者多个方法步骤。在备选实施例中,硬件(比如ASIC420)可以取代软件或者与软件组合用来实施本发明。因此,除非这里另有明示,本发明的实施例不限于硬件与软件的任何具体组合。
经过通信接口470通过网络链路478和其它网络传输的信号承载去往和来自计算机***400的信息。计算机***400可以通过网络链路478和通信接口470、通过网络480、490以及其它网络发送和接收包括程序代码的信息。在使用因特网490的例子中,服务器主机492通过因特网490、ISP装备484、本地网络480和通信接口470发送从计算机400发送的消息所请求的用于特定应用的程序代码。接收的代码可以在它被接收时由处理器402执行或者存储于存储器404中或者存储设备408或者其它非易失性储存器中用于以后执行或者兼而有之。以这一方式,计算机***400可以用载波上的信号这一形式获得应用程序代码。
可以在向处理器402承载一个或者多个指令序列或者数据或者二者用于执行时涉及到各种形式的计算机可读介质。例如可以初始地在远程计算机、比如主机482的磁盘上承载指令和数据。远程计算机向它的动态存储器中加载指令和数据并且使用调制解调器通过电话线发送指令和数据。计算机***400本地的调制解调器在电话线上接收指令和数据并且使用红外线发送器以将指令和数据转换成适于作为网络链路478的红外载波上的信号。适于作为通信接口470的红外线检测器接收红外线信号中承载的指令和数据并且将代表指令和数据的信息置于总线410上。总线410向存储器404承载信息,处理器402从该存储器取回指令并且使用与指令一起发送的数据中的一些数据来执行指令。在存储器404中接收的指令和数据可以可选地在由处理器402执行之前或者之后存储于存储设备408上。
图5图示本发明的实施例可以实施于其上的芯片集或者芯片500。芯片集500被编程用于如这里描述的那样处理涉及分区式索引的搜索请求并且例如包括在一个或者多个物理封装(例如,芯片)中并入的、关于图4描述的处理器和存储器部件。举例而言,物理封装包括一个或者多个材料、部件和/或接线在结构组件(例如基板)上的布置,该布置用于提供一个或者多个特性、比如物理强度、尺寸节约和/或电互作用限制。设想在某些实施例中,可以在在单个芯片中实施芯片集500。进一步设想在某些实施例中,可以实施芯片集或者芯片500为单个“片上***”。进一步设想在某些实施例中例如将未使用单独ASIC并且如这里公开的所有相关功能将由一个或者多个处理器执行。芯片集或者芯片500或者其部分构成用于执行一个或者多个步骤的装置,该一个或者多个步骤提供与功能的可用性关联的用户接口导航信息。芯片集或者芯片500或者其部分构成用于处理涉及分区式索引的搜索请求的一个或者多个步骤的装置。
在一个实施例中,芯片集或者芯片500包括通信机制、比如用于在芯片集500的部件之间传递信息的总线501。处理器503具有与总线501的连通性以执行指令并且处理例如在存储器505中存储的信息。处理器503可以包括一个或者多个处理芯而每个芯被配置用于独立执行。多芯处理器在单个物理封装内实现多处理。多芯处理器的例子包括两个、四个、八个或者更大数目的处理芯。备选地或者附加地,处理器503可以包括经由总线501串接配置用于实现独立执行指令、流水线和多线程的一个或者多个微处理器。处理器503也可以附带有用于执行某些处理功能和任务的一个或者多个专门化部件、比如一个或者多个数信号处理器(DSP)507或者一个或者多个专用集成电路(ASIC)509。DSP507通常被配置用于与处理器503独立实时处理现实信号(例如声音)。类似地,ASIC509可以被配置用于执行更通用处理器不容易执行的专门化功能。用于辅助执行这里描述的发明功能的其它专门化部件可以包括一个或者多个现场可编程门阵列(FPGA)(未示出)、一个或者多个控制器(未示出)或者一个或者多个其它专用计算机芯片。
在一个实施例中,芯片集或者芯片500仅包括一个或者多个处理器以及支持和/或涉及和/或用于一个或者多个处理器的一些软件和/或固件。
处理器503和附带部件经由总线501具有与存储器505的连通性。存储器505包括用于存储可执行指令的动态存储器(例如,RAM、磁盘、可写入光盘等)和静态存储器(例如,ROM、CD-ROM等),这些可执行指令在被执行时执行这里描述的用于处理涉及分区式索引的搜索请求的发明步骤。存储器505也存储与发明步骤的执行关联或者通过执行发明步骤来生成的数据。
图6是根据一个实施例的能够在图1的***中操作的用于通信的移动终端(例如手持机)的示例部件的图。在一些实施例中,移动终端601或者其部分构成用于执行处理涉及分区式索引的搜索请求的一个或者多个步骤的装置。一般而言,经常在前端和后端特性方面定义无线电接收器。接收器的前端涵盖所有射频(RF)电路,而后端涵盖所有基带处理电路。如在本申请中所用,术语“电路”指代:(1)仅硬件的实现方式(比如在仅模拟和/或数字电路中的实现方式)和(2)电路与软件(和/或固件)的组合(比如如果适用于特定情境则指代包括数字信号处理器的处理器、软件和存储器的组合,这些组合一起工作以使装置(比如,移动电话或者服务器)执行各种功能)二者。“电路”的这一定义适用于这一术语在本申请中、包括在任何权利要求中的所有使用。作为又一例子,如在本申请中所用并且如果适用于特定情境,则术语“电路”也将覆盖仅一个处理器(或者多个处理器)及其附带软件/或者固件的实现方式。术语“电路”如果适用于特定情境则也将例如覆盖基带集成电路或者在移动电话中的应用处理器集成电路或者在蜂窝网络设备或者其它网络设备中的相似集成电路。
电话的相关内部部件包括主控制单元(MCU)603、数字信号处理器(DSP)605和接收器/发送器单元,该接收器/发送器单元包括麦克风增益控制单元和扬声器增益控制单元。主显示单元607在各种应用和移动终端功能的支持下向用户提供显示,这些应用和移动终端功能支持处理涉及分区式索引的搜索请求的步骤。显示器607包括显示电路,该显示电路被配置用于显示移动终端(例如,移动电话)的用户接口的至少部分。此外,显示器607和显示电路被配置用于促进用户控制移动终端的至少一些功能。音频功能电路609包括麦克风611和放大从麦克风61输出的话音信号的麦克风放大器。向编码器/解码器(CODEC)613馈送从麦克风611输出的放大话音信号。
无线电部615放大功率并且转换频率以便经由天线617与移动通信***中包括的基站通信。如本领域中所知,功率放大器(PA)619和发送器/调制电路在操作上响应于MCU603而来自PA619的输出耦合到双工器621或者循环器或者天线开关。PA619也耦合到电池接口和功率控制单元620。
在使用中,移动终端601的用户向麦克风611中说话,并且他的或者她的语音与任何检测到的背景噪音一起转换成模拟电压。然后通过模数转换器(ADC)623将模拟电压转换成数字信号。控制单元603向DSP605中传送数字信号用于其中的处理、比如话音编码、信道编码、加密和交织。在一个实施例中,未单独示出的单元使用蜂窝传输协议,比如全球演进(EDGE)、通用分组无线电服务(GPRS)、全球移动通信***(GSM)、网际协议多媒体子***(IMS)、通用移动电信***(UMTS)等以及任何其它适当无线介质,例如微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、卫星等对处理的语音信号编码。
然后向均衡器625传送编码的信号用于补偿在经过空气传输期间出现的任何依赖于频率的削弱、比如相位和幅度失真。在均衡位流之后,调制器627组合信号与RF接口629中生成的RF信号。调制器627通过频率或者相位调制来生成正弦波。为了预备信号用于传输,上变频转换器631组合从调制器627输出的正弦波与合成器633生成的另一正弦波以实现希望的传输频率。然后通过PA619发送信号以将信号增加至适当功率电平。在实际***中,PA619充当可变增益放大器,该放大器的增益由DSP605根据从网络基站接收的信息来控制。然后在双工器621内对信号滤波并且可选地向天线耦合器635发送以匹配阻抗从而提供最大功率传送。最后经由天线617向本地基站传输信号。可以供应自动增益控制(AGC)以控制接收器的末级的增益。可以从这里向远程电话转发信号,该远程电话可以是另一蜂窝电话、其它移动电话或者连接到公共交换电话网络(PSTN)或者其它电话网络的陆线。
经由天线617接收向移动终端601传输的语音信号并且立即由低噪声放大器(LNA)637放大。下变频转换器639降低载波频率而解调器641剥离RF从而仅留下数字位流。信号然后穿过均衡器625并且由DSP605处理。数模转换器(DAC)643转换信号并且通过扬声器645向用户传输所得输出,所有这些都在主控制单元(MCU)603——可以实施该MCU为中央处理单元(CPU)(未示出)——的控制之下。
MCU603接收包括来自键盘647的输入信号的各种信号。键盘647和/或MCU603与其它用户输入部件(例如麦克风611)组合包括用于管理用户输入的用户接口电路。MCU603运行用户接口软件以促进用户控制移动终端601的用于处理涉及分区式索引的搜索请求的至少一些功能。MCU603也分别向显示器607和向话音输出切换控制器递送显示命令和切换命令。另外,MCU603与DSP605交换信息并且可以访问可选地并入的SIM卡649和存储器651。此外,MCU603执行终端的所需各种控制功能。DSP605可以根据实现方式对语音信号执行多种常规数字处理功能中的任何数字处理功能。此外,DSP605根据麦克风611检测的信号确定本地环境的背景噪声电平并且将麦克风611的增益设置成为了补偿移动终端601的用户的自然倾向而选择的电平。
CODEC613包括ADC623和DAC643。存储器651存储包括呼叫传入音频数据的各种数据并且能够存储包括例如经由全球因特网接收的音乐数据的其它数据。软件模块可以驻留于RAM存储器、闪存、寄存器或者本领域已知的任何其它形式的可写入存储介质中。存储器设备651可以是但不限于单个存储器、CD、DVD、ROM、RAM、EEPROM、光学储存器或者是能够存储数字数据的任何其它非易失性存储介质。
可选地并入的SIM卡649例如承载重要信息,比如蜂窝电话号码,该载体供应服务、预订细节和安全信息。SIM卡649主要服务于在无线电网络上标识移动终端601。卡649也包含用于存储个人电话号码注册表、文字消息和用户专属移动终端设置的存储器。
尽管已经结合多个实施例和实现方式描述本发明,但是本发明不限于此而是覆盖落入所附权利要求的范围内的各种明显修改和等效布置。虽然在权利要求之中的某些组合中表达本发明的特征,但是设想可以在任何组合和顺序中布置这些特征。
Claims (56)
1.一种方法,包括:
接收用于搜索索引的请求,其中跨越通信的多个节点对所述索引分区;
确定所述请求是否有确定性;以及
基于所述请求是否有确定性来确定来自所述多个节点中的至少一个节点的对请求的响应数目。
2.根据权利要求1所述的方法,其中如果不多于预定数目的索引条目集合至少实质上满足所述请求,则所述请求有确定性。
3.根据权利要求2所述的方法,其中所述预定数目是一。
4.根据权利要求1所述的方法,其中所述响应至少部分基于来自所述索引的所述搜索的一个或者多个匹配。
5.根据权利要求1所述的方法,其中如果所述请求无确定性,则确定对请求的所述响应数目还包括:
确定响应于所述请求而返回的目标响应数目;
确定所述多个节点中的本地节点的本地分区上的响应数目;以及
至少部分基于所述目标响应数目和所述本地分区上的所述响应数目确定短缺量。
6.根据权利要求5所述的方法,其中确定对请求的所述响应数目还包括确定对请求的所述响应数目是否大于或者等于所述短缺量。
7.根据权利要求5所述的方法,其中确定对请求的所述响应数目还包括通过将所述短缺量与缓冲因子的乘积除以所述本地分区上的所述响应数目来确定对请求的所述响应数目。
8.根据权利要求7所述的方法,其中所述缓冲因子大于一。
9.根据权利要求5所述的方法,还包括:
确定响应于一个或者多个相似先前请求的来自节点的平均响应数目;以及
确定所述多个节点的数目,通过将所述短缺量与缓冲因子的乘积除以所述平均响应数目来确定来自这些多个节点的对请求的所述响应数目。
10.根据权利要求2所述的方法,其中如果所述请求有确定性,则确定对请求的所述响应数目还包括:
确定响应于所述请求而返回的目标响应数目;
确定响应与所述有限数目的索引条目集合之一至少实质上相同的置信度水平;以及
至少部分基于所述置信度水平确定来自所述多个节点中的实质上所有节点的对请求的所述响应数目。
11.根据权利要求10所述的方法,其中如果所述置信度水平至少实质上等于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目。
12.根据权利要求10所述的方法,其中如果所述置信度水平少于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目除以所述多个节点中的节点数目的比值的缓冲因子倍的乘积。
13.根据权利要求12所述的方法,其中所述缓冲因子比一大如下数量,所述数量至少部分依赖于所述置信度水平。
14.根据权利要求10所述的方法,还包括:
确定响应于针对实质上100%置信度的至少一个相似先前有确定性的请求的、来自所述多个节点中的至少另一节点的最大贡献数目,
其中所述确定对请求的所述响应数目还至少部分基于所述最大贡献数目。
15.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括用于一个或者多个程序的计算机程序代码,
所述至少一个存储器和所述计算机程序代码被配置用于与所述至少一个处理器一起使所述装置执行至少以下操作:
接收用于搜索索引的请求,其中跨越通信的多个节点对所述索引分区;
确定所述请求是否有确定性;以及
基于所述请求是否有确定性来确定来自所述多个节点中的至少一个节点的对请求的响应数目。
16.根据权利要求15所述的装置,其中如果不多于预定数目的索引条目集合至少实质上满足所述请求,则所述请求有确定性。
17.根据权利要求15所述的装置,其中所述响应至少部分基于来自所述索引的所述搜索的一个或者多个匹配。
18.根据权利要求15所述的装置,其中如果所述请求无确定性,则确定对请求的所述响应数目还使所述装置:
确定响应于所述请求而返回的目标响应数目;
确定所述多个节点中的本地节点的本地分区上的响应数目;以及
至少部分基于所述目标响应数目和所述本地分区上的所述响应数目确定短缺量。
19.根据权利要求18所述的装置,其中确定对请求的所述响应数目还包括通过将所述短缺量与缓冲因子的乘积除以所述本地分区上的所述响应数目来确定对请求的所述响应数目。
20.根据权利要求16所述的装置,其中如果所述请求有确定性,则确定来自所述多个节点中的每个节点的对请求的所述响应数目还使所述装置:
确定响应于所述请求而返回的目标响应数目;
确定响应与所述有限数目的索引条目集合至少实质上相同的置信度水平;以及
至少部分基于所述置信度水平确定来自所述多个节点中的实质上所有节点的对请求的所述响应数目。
21.一种方法,包括:
接收用于搜索索引的请求,其中跨越通信的多个节点对所述索引分区;
确定所述请求是否有确定性;以及
基于所述请求是否有确定性来确定来自所述多个节点中的至少一个节点的对请求的响应数目。
22.根据权利要求21所述的方法,其中如果不多于预定数目的索引条目集合至少实质上满足所述请求,则所述请求有确定性。
23.根据权利要求22所述的方法,其中所述预定数目是一。
24.根据权利要求21至23中的任一权利要求所述的方法,其中所述响应至少部分基于来自所述索引的所述搜索的一个或者多个匹配。
25.根据权利要求21至24中的任一权利要求所述的方法,其中如果所述请求无确定性,则确定对请求的所述响应数目还包括:
确定响应于所述请求而返回的目标响应数目;
确定所述多个节点中的本地节点的本地分区上的响应数目;以及
至少部分基于所述目标响应数目和所述本地分区上的所述响应数目确定短缺量。
26.根据权利要求25所述的方法,其中确定对请求的所述响应数目还包括确定对请求的所述响应数目是否大于或者等于所述短缺量。
27.根据权利要求25和26中的任一权利要求所述的方法,其中确定对请求的所述响应数目还包括通过将所述短缺量与缓冲因子的乘积除以本地分区上的所述响应数目来确定对请求的所述响应数目。
28.根据权利要求27所述的方法,其中所述缓冲因子大于一。
29.根据权利要求25至28中的任一权利要求所述的方法,还包括:
确定响应于一个或者多个相似先前请求的来自节点的平均响应数目;以及
确定所述多个节点的数目,通过将所述短缺量与缓冲因子的乘积除以所述平均响应数目来确定来自这些多个节点的对请求的所述响应数目。
30.根据权利要求29所述的方法,其中所述缓冲因子大于一。
31.根据权利要求22和23中的任一权利要求所述的方法,其中如果所述请求有确定性,则确定对请求的所述响应数目还包括:
确定响应于所述请求而返回的目标响应数目;
确定响应与所述有限数目的索引条目集合之一至少实质上相同的置信度水平;以及
至少部分基于所述置信度水平确定来自所述多个节点中的实质上所有节点的对请求的所述响应数目。
32.根据权利要求31所述的方法,其中如果所述置信度水平至少实质上等于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目。
33.根据权利要求31和32中的任一权利要求所述的方法,其中如果所述置信度水平少于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目除以所述多个节点中的节点数目的比值的缓冲因子倍的乘积。
34.根据权利要求33所述的方法,其中所述缓冲因子比一大如下数量,所述数量至少部分依赖于所述置信度水平。
35.根据权利要求31至34中的任一权利要求所述的方法,还包括:
确定响应于针对实质上100%置信度的至少一个相似先前有确定性的请求的、来自所述多个节点中的至少另一节点的最大贡献数目,
其中所述确定对请求的所述响应数目还至少部分基于所述最大贡献数目。
36.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括用于一个或者多个程序的计算机程序代码,
所述至少一个存储器和所述计算机程序代码被配置用于与所述至少一个处理器一起使所述装置执行至少以下操作:
接收用于搜索索引的请求,其中跨越通信的多个节点对所述索引分区;
确定所述请求是否有确定性;以及
基于所述请求是否有确定性来确定来自所述多个节点中的至少一个节点的对请求的响应数目。
37.根据权利要求36所述的装置,其中如果不多于预定数目的索引条目集合至少实质上满足所述请求,则所述请求有确定性。
38.根据权利要求37所述的装置,其中所述预定数目是一。
39.根据权利要求36至38中的任一权利要求所述的装置,其中所述响应至少部分基于来自所述索引的所述搜索的一个或者多个匹配。
40.根据权利要求36至39中的任一权利要求所述的装置,其中如果所述请求无确定性,则确定对请求的所述响应数目还使所述装置:
确定响应于所述请求而返回的目标响应数目;
确定所述多个节点中的本地节点的本地分区上的响应数目;以及
至少部分基于所述目标响应数目和所述本地分区上的所述响应数目确定短缺量。
41.根据权利要求40所述的装置,其中确定对请求的所述响应数目还包括确定对请求的所述响应数目是否大于或者等于所述短缺量。
42.根据权利要求40和41中的任一权利要求所述的装置,其中确定对请求的所述响应数目还包括通过将所述短缺量与缓冲因子的乘积除以所述本地分区上的所述响应数目来确定对请求的所述响应数目。
43.根据权利要求42所述的装置,其中所述缓冲因子大于一。
44.根据权利要求40至43中的任一权利要求所述的装置,其中还使所述装置:
确定响应于一个或者多个相似先前请求的来自节点的平均响应数目;并且
确定所述多个节点的数目,通过将所述短缺量与缓冲因子的乘积除以所述平均响应数目来确定来自这些多个节点的对请求的所述响应数目。
45.根据权利要求44所述的装置,其中所述缓冲因子大于一。
46.根据权利要求37和38中的任一权利要求所述的装置,其中如果所述请求有确定性,则确定对请求的所述响应数目还使所述装置:
确定响应于所述请求而返回的目标响应数目;
确定响应与所述有限数目的索引条目集合之一至少实质上相同的置信度水平;以及
至少部分基于所述置信度水平确定来自所述多个节点中的实质上所有节点的对请求的所述响应数目。
47.根据权利要求46所述的装置,其中如果所述置信度水平至少实质上等于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目。
48.根据权利要求46和47中的任一权利要求所述的装置,其中如果所述置信度水平少于100%,则对请求的所述响应数目至少实质上等于所述目标响应数目除以所述多个节点中的节点数目的比值的缓冲因子倍的乘积。
49.根据权利要求48所述的装置,其中所述缓冲因子比一大如下数量,所述数量至少部分依赖于所述置信度水平。
50.根据权利要求46至49中的任一权利要求所述的装置,其中还使所述装置:
确定响应于针对实质上100%置信度的至少一个相似先前有确定性的请求的、来自所述多个节点中的至少另一节点的最大贡献数目,
其中所述确定对请求的所述响应数目还至少部分基于所述最大贡献数目。
51.根据权利要求36至50中的任一权利要求所述的装置,其中所述装置是移动电话,所述移动电话还包括:
用户接口电路和用户接口软件,配置用于促进用户通过使用显示器控制所述移动电话的至少一些功能并且配置用于对用户输入做出响应;以及
显示器和显示电路,配置用于显示所述移动电话的用户接口的至少部分,所述显示器和显示电路被配置用于促进用户控制所述移动电话的至少一些功能。
52.一种计算机可读存储介质,承载一个或者多个指令的一个或者多个序列,所述一个或者多个指令的一个或者多个序列在由一个或者多个处理器执行时使装置至少执行根据权利要求21至35中的任一权利要求所述的方法。
53.一种装置,包括用于执行根据权利要求21至35中的任一权利要求所述的方法的装置。
54.根据权利要求53所述的装置,其中所述装置是移动电话,所述移动电话还包括:
用户接口电路和用户接口软件,配置用于促进用户通过使用显示器控制所述移动电话的至少一些功能并且配置用于对用户输入做出响应;以及
显示器和显示电路,配置用于显示所述移动电话的用户接口的至少部分,所述显示器和显示电路被配置用于促进用户控制所述移动电话的至少一些功能。
55.一种计算机程序产品,包括一个或者多个指令的一个或者多个序列,所述一个或者多个指令的一个或者多个序列在由一个或者多个处理器执行时使装置至少执行根据权利要求21至35中的任一权利要求所述的方法的步骤。
56.一种方法,包括促进访问至少一个接口,所述至少一个接口被配置用于允许访问至少一个服务,所述至少一个服务被配置用于执行权利要求21至35中的任一权利要求所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/861,574 US9229946B2 (en) | 2010-08-23 | 2010-08-23 | Method and apparatus for processing search request for a partitioned index |
US12/861,574 | 2010-08-23 | ||
PCT/IB2011/053703 WO2012025884A1 (en) | 2010-08-23 | 2011-08-23 | Method and apparatus for processing search requests for a partitioned index |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103069421A true CN103069421A (zh) | 2013-04-24 |
CN103069421B CN103069421B (zh) | 2017-02-08 |
Family
ID=45594893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180040738.5A Expired - Fee Related CN103069421B (zh) | 2010-08-23 | 2011-08-23 | 用于处理针对分区式索引的搜索请求的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9229946B2 (zh) |
EP (1) | EP2609529A4 (zh) |
CN (1) | CN103069421B (zh) |
WO (1) | WO2012025884A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544261A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种海量结构化日志数据全局索引管理方法及装置 |
CN112148706A (zh) * | 2019-06-28 | 2020-12-29 | 重庆小雨点小额贷款有限公司 | 一种变量分组方法及相关设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
JP5799706B2 (ja) * | 2011-09-26 | 2015-10-28 | 富士通株式会社 | 検索要求処理装置 |
US9665662B1 (en) | 2013-06-13 | 2017-05-30 | DataRPM Corporation | Methods and system for providing real-time business intelligence using natural language queries |
US9842135B2 (en) | 2014-03-10 | 2017-12-12 | Here Global B.V. | Methods, apparatuses and computer program products for performing index search optimization |
WO2016040513A1 (en) * | 2014-09-12 | 2016-03-17 | Novaseek Research LLC. | Specimen fulfillment analytics and procurement process |
CN106127306A (zh) * | 2016-06-17 | 2016-11-16 | 北京理工大学 | 一种高共享性Rete网络构建方法 |
CN106599019A (zh) * | 2016-10-21 | 2017-04-26 | 东莞市大易产业链服务有限公司 | 一种精确高效的ip地址定位方法 |
US10813169B2 (en) | 2018-03-22 | 2020-10-20 | GoTenna, Inc. | Mesh network deployment kit |
CN109036425B (zh) * | 2018-09-10 | 2019-12-24 | 百度在线网络技术(北京)有限公司 | 用于操作智能终端的方法和装置 |
US11316841B2 (en) * | 2019-03-25 | 2022-04-26 | Micron Technology, Inc. | Secure communication between an intermediary device and a network |
US11531663B2 (en) * | 2020-04-27 | 2022-12-20 | Microsoft Technology Licensing, Llc | Agent-based data pre-processing and data indexing for efficient data retrieval |
US20230237107A1 (en) * | 2022-01-27 | 2023-07-27 | Microsoft Technology Licensing, Llc | Optimizing request sizes in a search engine fanout |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864840A (en) * | 1997-06-30 | 1999-01-26 | International Business Machines Corporation | Evaluation of existential and universal subquery in a relational database management system for increased efficiency |
US20050027692A1 (en) * | 2003-07-29 | 2005-02-03 | International Business Machines Corporation. | Method, system, and program for accessing data in a database table |
WO2005076160A1 (en) * | 2004-02-06 | 2005-08-18 | Critical Software, Sa | Data warehouse distributed system and architecture to support distributed query execution |
US20050251524A1 (en) * | 2004-05-06 | 2005-11-10 | Vikram Shukla | Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index |
CN101071442A (zh) * | 2007-06-26 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 分布式索引文件的检索方法、检索***及检索服务器 |
US20080120273A1 (en) * | 2006-11-16 | 2008-05-22 | Bhashyam Ramesh | Profile based optimization |
CN101395602A (zh) * | 2005-12-29 | 2009-03-25 | 亚马逊科技公司 | 用于分布式文件存储和索引服务的方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030018621A1 (en) | 2001-06-29 | 2003-01-23 | Donald Steiner | Distributed information search in a networked environment |
AUPS300402A0 (en) * | 2002-06-17 | 2002-07-11 | Canon Kabushiki Kaisha | Indexing and querying structured documents |
US7158996B2 (en) * | 2003-01-27 | 2007-01-02 | International Business Machines Corporation | Method, system, and program for managing database operations with respect to a database table |
US7254580B1 (en) * | 2003-07-31 | 2007-08-07 | Google Inc. | System and method for selectively searching partitions of a database |
US7174346B1 (en) * | 2003-07-31 | 2007-02-06 | Google, Inc. | System and method for searching an extended database |
US9886492B2 (en) * | 2004-12-22 | 2018-02-06 | Teradata Us, Inc. | Self-adjusting database-query optimizer |
EP1677208A1 (en) | 2004-12-30 | 2006-07-05 | Sap Ag | Method and system for searching for data objects |
US8504548B2 (en) | 2008-10-03 | 2013-08-06 | Adaptive Computing Enterprises, Inc. | System and method for dynamically managing data centric searches |
US8799264B2 (en) | 2007-12-14 | 2014-08-05 | Microsoft Corporation | Method for improving search engine efficiency |
US8195645B2 (en) | 2008-07-23 | 2012-06-05 | International Business Machines Corporation | Optimized bulk computations in data warehouse environments |
US9183260B2 (en) * | 2008-10-09 | 2015-11-10 | International Business Machines Corporation | Node-level sub-queries in distributed databases |
US8145669B2 (en) * | 2009-12-11 | 2012-03-27 | At&T Intellectual Property I, L.P. | Methods and apparatus for representing probabilistic data using a probabilistic histogram |
-
2010
- 2010-08-23 US US12/861,574 patent/US9229946B2/en not_active Expired - Fee Related
-
2011
- 2011-08-23 EP EP11819502.3A patent/EP2609529A4/en not_active Ceased
- 2011-08-23 CN CN201180040738.5A patent/CN103069421B/zh not_active Expired - Fee Related
- 2011-08-23 WO PCT/IB2011/053703 patent/WO2012025884A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864840A (en) * | 1997-06-30 | 1999-01-26 | International Business Machines Corporation | Evaluation of existential and universal subquery in a relational database management system for increased efficiency |
US20050027692A1 (en) * | 2003-07-29 | 2005-02-03 | International Business Machines Corporation. | Method, system, and program for accessing data in a database table |
WO2005076160A1 (en) * | 2004-02-06 | 2005-08-18 | Critical Software, Sa | Data warehouse distributed system and architecture to support distributed query execution |
US20050251524A1 (en) * | 2004-05-06 | 2005-11-10 | Vikram Shukla | Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index |
CN101395602A (zh) * | 2005-12-29 | 2009-03-25 | 亚马逊科技公司 | 用于分布式文件存储和索引服务的方法和装置 |
US20080120273A1 (en) * | 2006-11-16 | 2008-05-22 | Bhashyam Ramesh | Profile based optimization |
CN101071442A (zh) * | 2007-06-26 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 分布式索引文件的检索方法、检索***及检索服务器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544261A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种海量结构化日志数据全局索引管理方法及装置 |
CN103544261B (zh) * | 2013-10-16 | 2016-06-22 | 国家计算机网络与信息安全管理中心 | 一种海量结构化日志数据全局索引管理方法及装置 |
CN112148706A (zh) * | 2019-06-28 | 2020-12-29 | 重庆小雨点小额贷款有限公司 | 一种变量分组方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US20120047164A1 (en) | 2012-02-23 |
WO2012025884A1 (en) | 2012-03-01 |
EP2609529A1 (en) | 2013-07-03 |
CN103069421B (zh) | 2017-02-08 |
US9229946B2 (en) | 2016-01-05 |
EP2609529A4 (en) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103069421A (zh) | 用于处理针对分区式索引的搜索请求的方法和装置 | |
CN103003797B (zh) | 用于分配计算闭包的方法和装置 | |
US9008693B2 (en) | Method and apparatus for information aggregation around locations | |
JP6285010B2 (ja) | 意味論的モデル化およびタグ付けを使用してアプリケーションを管理する方法およびその装置 | |
CN102918529B (zh) | 索引生成和使用的方法和装置 | |
US9477787B2 (en) | Method and apparatus for information clustering based on predictive social graphs | |
CN103907113A (zh) | 用于分布式脚本处理的方法和装置 | |
CN103190115A (zh) | 基于语境进行搜索的方法和装置 | |
CN102939579A (zh) | 绑定用户接口元素和粒度反映处理的方法和装置 | |
CN104079640B (zh) | 一种用户服务提供方法及*** | |
CN103430578A (zh) | 用于标识多个字符串中的对话的方法和装置 | |
CN102713904A (zh) | 利用可缩放的数据结构的方法和装置 | |
CN102939604A (zh) | 用于上下文索引的网络资源的方法和装置 | |
CN103703460A (zh) | 用于针对实时推荐的协同过滤的方法和装置 | |
CN103299300A (zh) | 提供输入建议的方法和装置 | |
WO2012057876A1 (en) | Chained data processing and application utilization | |
CN109359237A (zh) | 一种用于搜索寄宿程序的方法与设备 | |
CN103797479A (zh) | 用于混合社交搜索模型的方法和装置 | |
CN102656597A (zh) | 用于将消息和附件组织为会话的方法和装置 | |
CN102918821A (zh) | 用于基于用户数据识别网络功能的方法和装置 | |
CN103891245A (zh) | 位置知晓的内容检测 | |
CN104412262A (zh) | 用于提供基于任务的服务推荐的方法和装置 | |
CN102812485A (zh) | 用于在线服务提供商的规则设定的混合方式的方法和装置 | |
CN103080931A (zh) | 用于分页更新协议的方法和装置 | |
WO2022001887A1 (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160114 Address after: Espoo, Finland Applicant after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Applicant before: Nokia Oyj |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 Termination date: 20200823 |