联合搜索的制作方法

文档序号:11142270阅读:467来源:国知局
联合搜索的制造方法与工艺

申请人要求2014年5月30日提交的在先共同待审的临时申请序列号62/006,001的优先权权益,该临时申请的全部内容以引用的方式并入。

技术领域

本发明整体涉及搜索技术,并且更具体地讲,涉及在多个搜索域内搜索以及将用户反馈并入到引文搜索索引中。



背景技术:

用户常常将执行查询搜索以在网页上或从一些其他数据源查找信息。查询搜索始于客户端接收查询字符串,所述查询字符串被发送到搜索服务器。所述搜索服务器接收查询字符串并且对搜索索引进行搜索以获得匹配此查询字符串的结果。所述搜索服务器然后将所述结果返回给客户端。为了在客户端上协助用户,搜索服务器也可基于部分输入的查询字符串来建议查询补全。所建议的查询补全是搜索服务器在过去已经接收并且包括客户端输入部分查询字符串的补全后的查询搜索字符串。所建议的查询补全被呈现给用户,使得用户可选择所述查询补全中的一个作为字符串来用于所述搜索。

在客户端接收并呈现结果之后,用户可与所述结果中的一些建立关系(例如,点击所述结果中的一个的链接并花时间与由该链接标引的网站互动)并且也可放弃这些结果中的一些。然而,搜索服务器并不捕捉此用户反馈来将所述反馈并入到其搜索索引中。



技术实现要素:

本发明描述了一种执行多域查询搜索的设备的方法和装置。在示例性实施方案中,所述设备从用户的客户端接收查询前缀。所述设备还跨多个单独搜索域确定多个搜索补全。此外,所述设备基于针对由对应的搜索域确定的这多个搜索补全中的每个所计算的分数而为这多个搜索补全排名,其中所述多个搜索补全中的至少一个用于在不具有来自用户的指示的情况下并且响应于接收所述查询前缀而生成多个搜索结果。

在另一个实施方案中,所述设备使用来自用户的搜索会话的反馈生成结果高速缓存。在该实施方案中,所述设备从客户端接收反馈包,其中所述反馈包表征用户与搜索会话中响应于用户所输入的查询前缀而呈现给用户的多个查询结果的互动。所述设备还通过使用搜索反馈索引来运行多个查询以得出多个结果而生成所述多个查询的所述多个结果。此外,所述设备从所述多个结果创建结果高速缓存,其中所述结果高速缓存将所述多个结果映射到所述多个查询并且所述结果高速缓存用于将查询结果供应给客户端。

在另一实施方案中,所述设备由在多个单独搜索域内的查询生成多个排名查询结果。在该实施方案中,所述设备接收所述查询并且使用所述查询跨所述多个单独搜索域来确定多个结果。所述设备还表征所述查询。此外,所述设备基于针对由对应的搜索域确定的所述多个结果中的每个所计算的分数和所述查询表征而为所述多个结果排名,其中所述查询表征指示查询类型。

还描述了其他方法和装置。

附图说明

本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。

图1为基于输入查询前缀来返回搜索结果的系统的一个实施方案的框图。

图2是用于基于输入查询前缀来确定查询补全和相关结果的过程的一个实施方案的流程图。

图3为聚合器和多个搜索域的一个实施方案的框图。

图4为查询补全搜索域的一个实施方案的图示。

图5为地图搜索域的一个实施方案的图示。

图6为用于从多个搜索域确定查询补全的过程的一个实施方案的流程图。

图7为用于从所确定的查询补全在多个搜索域上确定相关结果的过程

的一个实施方案的流程图。

图8为将用户反馈并入到反馈搜索索引中的系统的一个实施方案的框图。

图9为用于将用户反馈并入到引文搜索索引中的过程的一个实施方案的流程图。

图10为用于在用户搜索会话期间收集用户反馈的过程的一个实施方案的流程图。

图11为用于将用户反馈并入到反馈索引中的过程的一个实施方案的流程图。

图12为用于使用用户反馈来更新结果高速缓存的过程的一个实施方案的流程图。

图13为使用所表征的查询补全来执行多域搜索的联合器(federator)的一个实施方案的框图。

图14为用于使用词汇服务来确定相关结果的过程的一个实施方案的流程图。

图15为用于表征查询补全的过程的一个实施方案的流程图。

图16为用于从多个搜索域确定查询补全的补全模块的一个实施方案的框图。

图17为用于从所确定的查询补全在多个搜索域上确定相关结果的结果模块的一个实施方案的框图。

图18为用于在用户搜索会话期间收集用户反馈的收集反馈模块的一个实施方案的框图。

图19为用于将用户反馈并入到反馈索引中的处理反馈模块的一个实施方案的框图。

图20为用于使用用户反馈来更新结果高速缓存的更新查询结果模块的一个实施方案的框图。

图21为用于将用户反馈并入到反馈索引中的处理反馈模块的一个实施方案的框图。

图22为用于使用用户反馈来更新结果高速缓存的更新查询结果模块的一个实施方案的框图。

图23示出了可结合本文所述的实施方案一起使用的典型计算机系统的一个实例。

图24示出了可与本发明的一个实施方案一起使用的数据处理系统的一个实例。

具体实施方式

本发明描述了一种执行多域查询搜索的设备的方法和装置。在以下说明中给出了许多具体细节,以提供对本发明的实施方案的全面解释。然而,对于本领域的技术人员显而易见的是,本发明的实施方案可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的部件、结构和技术,以免模糊对此说明的理解。

本说明书中提到的“一个实施方案”或“实施方案”是指,结合实施方案所描述的特定特征、结构或特性可被包括在本发明的至少一个实施方案中。在本说明书中的各种位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。

在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。

下图中示出的过程通过处理逻辑部件来执行,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件等)、软件(诸如在通用计算机系统或专用机上运行的软件)、或两者的组合。虽然下文按照某些顺序操作来描述该过程,但应当理解,所述的某些操作可以不同的顺序来执行。此外,某些操作也可并行执行而并非按顺序执行。

术语“服务器”、“客户端”和“设备”旨在泛指数据处理系统而非特指服务器、客户端和/或设备的特定形状因数。

本发明描述了一种执行多域查询搜索的设备的方法和装置。在一个实施方案中,所述设备从客户端接收由用户输入的递增查询前缀,并且使用所述递增查询前缀来为每个查询前缀生成一组查询补全。例如并且在一个实施方案中,如果用户输入字符串“apple”,那么设备接收递增查询前缀:“a”、“ap”、“app”、“appl”和“apple”。对于每个查询前缀,设备生成一组查询补全。例如并且在一个实施方案中,对于“a”的补全可为“apple.com”、“America”或“Annapolis”。类似地,设备可为其他递增查询前缀生成不同的一组查询补全。在一个实施方案中,设备从多个搜索域确定该组查询补全。例如并且在一个实施方案中,设备跨诸如地图、媒体、维基百科、网站和其他搜索域等搜索域来搜索查询补全。在一个实施方案中,这些搜索域中的每个包括用于确定输入查询前缀的可能补全的一个或多个查询补全树。在一个实施方案中,每个搜索域返回设备用来为这些查询补全排名的一组分数。例如并且在一个实施方案中,每个搜索域返回可由设备用来跨不同域为这些不同补全进行排名的一组原始、本地和全局分数。

如上文所述,传统系统将可能的查询补全返回给用户,并且用户将选择所述可能的查询补全中的一个来用于查询搜索。相比之下并且在一个实施方案中,设备不将该组查询补全返回给用户。相反,设备为该组查询补全进行排名并且使用查询补全的子组来确定此查询补全子组的相关结果,而不将该组查询补全呈现给用户或不获取使用该组查询补全中的哪一个来确定相关结果的指示。在一个实施方案中,设备执行跨多个搜索域(例如,地图、媒体、维基百科、网站、其他或另一搜索域)的对相关结果的搜索。设备从这多个搜索域接收一组结果并且基于由每个搜索域生成的分数和跨域信息为这些结果排名。在一个实施方案中,设备还基于用来确定这些结果的查询补全的类型而为相关结果排名。例如并且在一个实施方案中,如果查询补全被表征为对地点的搜索,那么来自地图搜索域的结果的排名以及关于这个地点的维基百科条目的排名可较高。又如,如果查询补全被指示为关于艺术家,那么媒体搜索域结果的排名可较高。所述设备将针对查询补全找到的相关结果返回给客户端。

在一个实施方案中,查看结果的用户可能采用或放弃结果。在一个实施方案中,如果用户在其搜索会话期间与呈现给用户的渲染结果中的一个互动,那么采用事件发生。例如并且在一个实施方案中,用户可点击针对渲染结果中的一个所呈现的链接。在另一实例中,用户可点击链接并且花费多于预定时间的时间与由该链接标引的对象(例如,网站)互动(例如,与所标引的对象互动超过60秒)。在本实例中,用户可接收涉及现任美国总统的查询搜索的结果并且点击标引描述最近总统演讲的网页的链接。如果用户与网站互动超过预定时间(例如,60-90秒),那么设备将确定用户与由该链接标引的结果建立了关系。在另一个实施方案中,用户可忽略或放弃为用户渲染的结果。例如并且在一个实施方案中,如果用户点击针对渲染结果中的一个所呈现的链接,但是在预定时间内离开该网站(例如,短于60-90秒),那么设备确定这是对该结果的放弃事件。

在一个实施方案中,此反馈可被并入到搜索索引中,其中所述反馈影响相关结果的排名和过滤。在该实施方案中,呈现并渲染相关结果的客户端此外还收集用户的搜索会话的采用和放弃事件。客户端将事件收集到反馈包中并且将此包发送到服务器用于处理。在一个实施方案中,服务器接收反馈包并且将反馈包转换成反馈索引条目。在一个实施方案中,反馈索引条目具有以下格式:<query,result,render counts,engagement counts,abandonment counts>,其中query是输入查询和上下文信息,诸如设备类型、应用程序、场所和地理位置,result是渲染结果,render counts是针对该查询渲染结果的次数,engagement counts是针对该查询采用结果的次数,并且abandonment counts是放弃结果的次数。此条目被并入到反馈搜索索引中。在一个实施方案中,反馈搜索索引是将用户反馈并入到评分结果中的搜索索引。例如并且在一个实施方案中,查询结果对的每次采用事件提升对应查询的该结果。在本实例中,如果用户与特定查询的结果建立关系,那么未来用户也可能与相同查询的这个结果建立关系。因此,在一个实施方案中,此查询的结果将针对具有相同查询的未来用户被返回并且排名较高。相反地,如果用户放弃特定查询的结果,那么未来用户也可能放弃相同查询的此相同结果。因此,在一个实施方案中,此查询的结果可针对具有相同查询的未来用户被返回并且排名较低。

在一个实施方案中,服务器还使用反馈搜索索引来生成将查询映射到结果的结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可用于快速返回用于用户查询的结果。在一个实施方案中,结果高速缓存被存储在紧邻用户设备的边缘服务器中,可用于在执行查询搜索之前供应一个或多个结果。在一个实施方案中,服务器通过运行来自结果集合的一组查询来生成经过更新的结果集合而生成结果高速缓存,其将收集到的反馈并入到经过更新的结果集合的结果中。此经过更新的结果集合被发送到边缘服务器。

图1为基于输入查询前缀来返回搜索结果的系统100的一个实施方案的框图。在图1中,系统100包括搜索网络108,该搜索网络耦合到设备102、智能电话114和平板电脑116。在一个实施方案中,搜索网络是一个或多个服务器的网络,其接收不同设备的查询前缀并且将查询结果返回给那些设备。例如并且在一个实施方案中,搜索网络从设备102、智能电话114和/或平板电脑116接收查询前缀110A-D并且将查询结果112A-D返回给相应设备(例如,设备102、智能电话114和/或平板电脑116)。在一个实施方案中,设备102可为个人计算机、膝上型电脑、服务器、移动设备(例如,智能电话、膝上型电脑、个人数字助理、音乐播放设备、游戏设备等)、和/或能够请求和/或显示查询的任何设备。在一个实施例中,设备可为物理或虚拟设备。在一个实施方案中,智能电话114可为能够执行设备102的许多功能的蜂窝电话。在一个实施方案中,平板电脑116可为在显示器上接受输入的移动设备。

在一个实施方案中,这些设备中的每一者都包括用于供用户输入查询前缀的浏览器。例如,在一个实施方案中,设备102包括网页浏览器104和文件浏览器106。这些浏览器中的每个包括供用户用来输入查询前缀的搜索输入栏。在一个实施方案中,网页浏览器104是允许用户搜索并检索网页以获得各种类型的网页文件的程序。在一个实施方案中,网页浏览器104包括搜索输入栏128。搜索输入栏128供用户用来输入查询前缀字符串。在一个实施方案中,查询前缀字符串是将用在被发送到搜索网络108的查询前缀中的一串文本或其他符号。查询前缀字符串可为用户所输入的不完整或完整的搜索字符串。在一个实施方案中,随着用户在搜索输入栏120A中键入查询输入字符串,网页浏览器104捕获查询前缀字符串并且在查询前缀110A中将此查询前缀字符串发送到搜索网络。对于搜索输入栏120A中输入的每个符号或文本字符串,网页浏览器104均创建查询前缀110A并将其发送到搜索网络108。响应于接收查询前缀110A,搜索网络在多个搜索域内创建一个或多个查询补全并且选择这些查询补全中的一个或多个来创建一组相关结果112,该组相关结果被返回到网页浏览器104。例如并且在一个实施方案中,随着用户输入文本“appl”,网页浏览器104使用查询前缀字符串“a”、“ap”、“app”和“appl”创建查询前缀110A。对于这些查询前缀110A中的每个,搜索网络108从多个搜索域创建一组查询补全,使用这些查询补全来确定相关结果,并且为这些不同的查询前缀110A返回不同的一组结果。这个随着用户输入随后的字符而捕获查询前缀的过程也可在文件浏览器106中进行。在一个实施方案中,文件浏览器106包括搜索输入栏120B,用户可使用该搜索输入栏来输入查询前缀字符串。在该实施方案中,随着用户输入查询前缀字符串,文件浏览器106创建不同的查询前缀110B并且将它们发送到搜索网络108。搜索网络108接收不同的查询前缀110B并确定一个或多个查询补全且如上文所述返回相关结果。此外,查询前缀可用于使用本地存储在设备106上的数据的元数据数据库来执行查询。

在一个实施方案中,此随着查询输入字符串的输入而捕获所述字符串、确定一个或多个查询补全以及使用这些查询补全来确定相关结果的相同过程也可在智能电话114和平板电脑116上执行。在该实施方案中,智能电话114包括浏览器116。浏览器116包括搜索输入栏120C。类似于上文所述,搜索输入栏120C供用户用来输入查询前缀字符串。此查询前缀字符串通过浏览器116递增捕获,浏览器继而创建一组不同的查询前缀110C,该组不同的查询前缀被发送到搜索网络108。响应于接收这些不同查询前缀110C中的每个,搜索网络108确定一个或多个查询补全,并且使用这些查询补全来确定被返回到浏览器116的相关结果112C。此外,平板电脑116包括浏览器118。浏览器118包括搜索输入栏120D。类似于上文所述,搜索输入栏120D供用户用来输入查询前缀字符串。此查询前缀字符串被浏览器118递增捕获,浏览器继而创建一组不同的查询前缀110D,该组不同的查询前缀被发送到搜索网络108。响应于接收这些不同查询前缀110D中的每个,搜索网络108确定一个或多个查询补全,并且使用这些查询补全来确定被返回到浏览器118的相关结果112D。在一个实施方案中,搜索网络108包括搜索模块118,该搜索模块处理查询补全并且返回相关结果。下文在图2-7中进一步描述处理查询补全以及返回相关结果。

如上文所述,设备上的浏览器将查询前缀110A–D发送到搜索网络108。在一个实施方案中,查询前缀110A–D包括查询前缀字符串、位置(例如,纬度/经度组合)、设备类型标识符(例如,计算机、智能电话、平板电脑等)和应用程序类型标识符(例如,网页浏览器(以及网页浏览器的类型)、文件浏览器)和场所。在该实施方案中,通过提供位置、设备类型标识符、应用程序类型标识符和场所,用户输入查询前缀字符串的上下文被提供给搜索网络108。在一个实施方案中,搜索网络108使用此上下文和查询前缀字符串来确定查询补全和相关结果。例如并且在一个实施方案中,搜索网络108可使用位置信息来确定与提供查询前缀的设备的位置相关的查询补全和结果。例如,设备位置可用于寻找当前设备位置附近的地点的搜索结果。又如并且在另一个实施方案中,设备类型标识符可供搜索网络108用来确定涉及该设备类型的补全和结果。在本实例中,如果设备类型标识符指示查询前缀来自智能电话,那么搜索网络108可为智能电话的应用程序商店的结果赋予比个人计算机的应用程序商店的结果更大的权重。再如并且在其他实施方案中,应用程序类型标识符和场所也可用于对补全和结果进行加权。

在一个实施方案中,搜索网络108使用多域查询补全来补全查询前缀。在该实施方案中,搜索网络108将每个接收到的查询前缀发送到搜索网络108所使用的每个搜索域。例如并且在一个实施方案中,搜索网络108将接收到的查询前缀发送到地图搜索域、媒体搜索域、维基百科搜索域、网站搜索域和其他搜索域。这些搜索域中的每个将基于包含在该搜索域中的数据来确定该查询前缀的一个或多个查询补全。此外,每个搜索域将返回所述一个或多个查询补全中的每个的一组分数。例如并且在一个实施方案中,搜索域将返回每个查询补全的原始、本地和/或全局分数。图3-6中进一步描述了执行多域查询补全。

不将搜索网络108所确定的查询补全返回到提供查询前缀的设备,相反,搜索网络108使用所述查询补全中的一个或多个来在多搜索域上确定一组相关查询结果。在一个实施方案中,使用查询补全来确定一组相关查询结果是在没有来自用户的关于使用这些查询补全中的什么查询补全来确定相关结果的指示的情况下执行。在该实施方案中,随着用户输入字符串到搜索输入栏中,搜索网络108处理字符串并且将相关结果返回给用户。在一个实施方案中,搜索网络108使用所确定的查询补全中的一个或多个来寻找那些查询补全的查询结果并且为那些查询结果排名。在一个实施方案中,搜索网络108在可供搜索网络108使用的多个搜索域中搜索。在该实施方案中,搜索网络108从每个搜索域接收查询补全的一组结果。对于这些结果中的每个结果,搜索网络108此外还接收表征该结果的一组分数。在一个实施方案中,所述分数可包括由提供结果的搜索域、另一度量和/或表征如下文在图7中所述用来提供结果的查询补全的信号所确定的分数。在一个实施方案中,所述信号基于使用知识库对查询补全进行的词汇表征。在一个实施方案中,词汇表征确定哪种类型的查询补全被用于多域查询搜索。下文在图7和13-15中进一步描述执行多域查询搜索来确定一组相关结果。

图2是用于基于输入查询前缀来确定查询补全和相关结果的过程200的一个实施方案的流程图。在图2中,过程200始于接收查询前缀。在一个实施方案中,查询前缀包括如上文在图1中所述的查询前缀字符串、位置、设备类型标识符、应用程序类型识别符以及场所。在该实施方案中,所述位置、设备类型标识符、应用程序类型标识符和/或场所为查询前缀给出用户输入查询前缀字符串的上下文。在框204处,过程200跨多个搜索域确定查询补全并为查询补全排名且进行选择。在一个实施方案中,过程200使用查询前缀来从这些不同域中的每个确定一组查询补全。例如并且在一个实施方案中,如果查询前缀字符串为“ap”,那么过程200将使用此查询前缀字符串来从不同搜索域(例如,地图、媒体、维基百科、网站和/或其他搜索域)确定该组查询补全。在本实例中,地图搜索域可能将查询补全返回到城市Apache Junction,媒体搜索域将查询补全返回到音乐作品Appalachian Spring,维基百科搜索域可能将查询补全返回到Apple公司,并且网站搜索域可能将查询补全返回到网站Apple.com。在一个实施方案中,过程200在查询前缀字符串具有最小字符数(例如,四个字符)的情况下创建该组查询补全。

此外,过程200为从这些不同域接收的可能查询补全进行排名并进行选择。在一个实施方案中,过程200基于由对应的搜索域确定的分数以及基于查询前缀的上下文的权重来为可能的查询补全排名。在该实施方案中,过程200基于这些排名来选择该组查询补全。在一个实施方案中,不将该组查询补全返回给输入用于大量补全的查询前缀字符串的用户,相反,将该组查询补全用于确定一组相关结果,该组相关结果然后被返回给用户。下文在图3-6中进一步描述了确定一组查询补全。

过程200在框206处确定该组相关结果。在一个实施方案中,过程200基于框204中确定的查询补全来确定相关结果。在该实施方案中,过程200在可供过程200使用的多个搜索域中搜索。在该实施方案中,过程200从每个搜索域接收查询补全的一组结果。对于这些结果中的每个结果,过程200此外还接收表征该结果的一组分数。在一个实施方案中,所述分数可包括由提供结果的搜索域、另一度量和/或表征用于如下文在图7中所述提供结果的查询补全的信号所确定的分数。在一个实施方案中,所述信号基于使用知识库对查询补全进行的词汇表征。在一个实施方案中,词汇表征确定哪种类型的查询补全被用于多域查询搜索。下文在图7和13-15中进一步描述了确定该组相关结果。在框208处,过程200将该组相关结果返回给用户。在另一个实施方案中,反馈索引可被用作单个域来加权结果。下文在图14中进一步描述了本实施方案。

如上所述,过程200在多个搜索域上确定查询补全和相关结果。在一个实施方案中,使用聚合器来聚合查询补全和相关结果。图3是系统300的一个实施方案的框图,该系统包括聚合器302和多个搜索域304A-F。在一个实施方案中,聚合器302基于输入查询前缀而接收对查询补全的请求。响应于接收输入查询前缀,聚合器302将输入查询前缀发送到搜索域304A-F中的每个,搜索域304A-F中的每个使用输入查询前缀来确定该域中的可能的查询补全。例如并且在一个实施方案中,地图搜索域304A接收输入查询前缀并且搜索这个域以获得可能的查询补全。在一个实施方案中,聚合器302从每个搜索域接收查询补全,并基于由对应搜索域确定的每个补全的分数以及基于查询前缀上下文的权重来为所接收的查询补全排名。

在一个实施方案中,地图搜索域304A是包括与地理地图相关的信息的搜索域。在该实施方案中,地图信息可包括关于地点、地址、地点、商业、名胜古迹的信息或与地图相关的其他类型的信息。在另一个实施方案中,地图信息也可包括与名胜古迹相关的信息,诸如开放时间、评论和评级、联系信息、路线指引和/或与地点相关的照片。在一个实施方案中,媒体搜索域304B是与媒体相关的搜索域。在一个实施方案中,媒体搜索域304B包括与音乐、书籍、视频、课程、语言艺术、播客、电台和/或其他类型的媒体相关的信息。在其他实施方案中,媒体搜索域304B可包括与可在设备(诸如如上文在图1中所述的设备102、智能电话114和平板电脑116)上运行的应用程序相关的信息。在一个实施方案中,媒体搜索域是包括可供购买的不同类型的媒体(例如,音乐、书籍、视频、课程、语言艺术、播客、电台、应用程序和/或其他类型的媒体)的媒体商店。在一个实施方案中,维基百科搜索域304C是在线百科全书搜索域。例如并且在一个实施方案中,维基百科搜索域304C可为WIKIPEDIA。在一个实施方案中,网站搜索域304D是网站的搜索域。例如并且在一个实施方案中,网站搜索域304D包括商业、政府、公共和/或私人网站,诸如“apple.com”、“whitehouse.gov”、“yahoo.com”等。在一个实施方案中,所述其它搜索域304E是可被聚合器302访问的一组其他搜索域(例如,新闻搜索域)。在一个实施方案中,反馈补全域304F是基于由在各种设备上运行的浏览器收集的查询反馈的搜索索引。在一个实施方案中,反馈补全域304F包括基于所收集的查询反馈将查询映射到结果的反馈索引。下文在图8-12中进一步描述了反馈索引。

如上文所述,每个搜索域304A-F包括允许每个搜索域基于输入查询前缀给出一组查询补全的信息。在一个实施方案中,每个搜索域包括用于确定查询补全以及确定那些查询补全中的每个的分数的查询补全树。图4为查询补全搜索域402的一个实施方案的图示。在图4中,查询补全搜索域402包括具有节点404A-J的查询补全树400。在一个实施方案中,节点404A-J中的每个表示相应语言中的字符。在该实施方案中,通过沿着树向下追随节点404A-J,可表示不同的查询补全。例如并且在一个实施方案中,始于节点404A并且继续向下至节点404C,可表示始于字母“ap”的补全。每个节点还包括频率,该频率为此补全已被输入查询前缀匹配的次数。在一个实施方案中,节点404C的频率为N。在该实施方案中,频率表示为被返回到上述聚合器302的原始分数。在一个实施方案中,可基于日志(例如,地图或媒体搜索域)、所访问的页面(例如,维基百科搜索域)或另一信息源来计算频率。在节点404C下,存在多个可能的其他查询补全。例如并且在一个实施方案中,节点404D-F表示始于字母“apa”、“apt”和“app”的查询补全。节点下方可能的查询补全的总数给出对由该节点表示的该查询补全的匹配程度的指示。如果节点在其下面具有大量的可能的其他节点,那么由该节点表示的查询补全不可能是好的补全。另一方面,如果节点下方具有相对较少的节点,那么此节点可以是好的补全。在一个实施方案中,该节点的本地分数由该节点的频率除以由该节点下面的子树表示的补全数所得的值来表示。在一个实施方案中,本地分数的方程式由方程式(1)表示:

在一个实施方案中,每个查询补全树包括补全的总数。这个值用于计算补全(或节点)的全局分数。在一个实施方案中,全局分数的方程式由方程式(2)表示:

在一个实施方案中,每个查询补全的原始、本地和全局分数被搜索域返回到聚合器。

图5为地图搜索域500的一个实施方案的图示。在图5中,地图搜索域500包括此域的不同缩放级别的查询补全树504A-D。在一个实施方案中,地图搜索域500包括城市级别504A、区县级别504B、州级别504C和国家级别504D的查询补全树,它们由地图聚合器502聚合。在该实施方案中,对输入查询前缀的查询补全的确定由地图聚合器502接收,该地图聚合器继而以地图搜索域500的不同缩放级别504A-D来确定该输入查询前缀的查询补全。地图聚合器502从不同缩放级别504A-D中的每个检索可能的查询补全,将查询补全聚合,并且将这些查询补全返回到聚合器(例如,聚合器302)。因此,地图搜索域500跨不同缩放级别确定查询补全。在一个实施方案中,地图搜索域500包括关于地址、地点、商业、名胜古迹的信息,和/或与地图相关的任何其他信息。在一个实施方案中,地图搜索域500可包括目录信息,诸如白页或黄页目录。在一个实施方案中,媒体搜索域由店面组织,该店面基于设备标识符与场所的组合。在该实施方案中,每个店面均存在查询补全树。

图6为用于从多个搜索域确定查询补全的过程600的一个实施方案的流程图。在一个实施方案中,聚合器302执行用于从多个搜索域确定查询补全的过程600。在图6中,过程600始于在框602处接收查询前缀。在一个实施方案中,查询前缀包括如上文在图2中所述的上下文中的查询前缀字符串。在框602处,过程600将查询前缀发送到不同搜索域以确定可能的补全。在一个实施方案中,过程600将查询前缀发送到地图、媒体、维基百科、网站和/或其他搜索域,其中每个搜索域如上文在图4中所述基于可用于那些搜索域中的每个的查询补全树,来确定输入查询前缀的可能查询补全。过程600在框606处从每个搜索域接收可能的查询补全。除了接收可能的查询补全之外,过程600还接收可能的补全中的每个的一组分数:例如,如上文在图4中所述的原始、本地和/或全局分数。在框608处,过程600基于返回的分数和输入查询前缀的上下文为可能的查询补全排名并进行过滤。在一个实施方案中,过程600基于接收自不同搜索域的原始、本地和全局分数以及包括有查询前缀的上下文为可能的查询补全排名。过程600此外还基于一组规则过滤可能的查询补全。例如并且在一个实施方案中,过滤规则可以为过程600滤除原始分数为1或低于某个预定值的可能补全。过程600将经过排名、过滤的补全发送到搜索查询模块,其中搜索查询模块使用该组经排名过滤的查询补全来确定将在框610处返回给用户的一组相关结果。

如上文所述,使用由过程600所确定的查询补全来确定相关结果

而无需将这些补全发回给用户。图7为用于从所确定的查询补全在多个搜索域上确定相关结果的过程700的一个实施方案的流程图。在一个实施方案中,联合器824执行过程700。在图7中,过程700在框702处从补全器(completer)接收查询补全。在一个实施方案中,所接收的查询补全为响应于接收查询前缀而由过程600确定的补全。在框704处,过程700将查询补全发送到不同搜索域以确定可能的相关结果。在一个实施方案中,每个搜索域使用所接收的查询补全来确定该搜索域的相关结果。在框706处,过程700从不同的搜索域接收查询结果。在一个实施方案中,过程700接收结果和与每个结果相关联的由相关搜索域计算的分数。

过程700在框708处为搜索结果排名并且进行过滤。在一个实施方案中,过程700基于由每个搜索域针对搜索结果和其他因数返回的分数而为搜索结果排名。在该实施方案中,来自不同域的分数可基于依赖于域的分数、独立于查询的分数和依赖于查询的分数而被评分。在一个实施方案中,不同搜索域中的每个可提供用于为返回的结果排名的特定数据。例如并且在一个实施方案中,地图搜索域可提供多种独立于查询的信息以便为结果排名:在线评论的数目、平均评论分数、与用户的距离(例如,基于查询前缀位置信息)、所述结果是否具有与其相关联的统一资源定位符(URL)(例如,所述结果是否为商业位置,所述商业是否具有URL引用、网站或其他社交媒体存在)、和/或点击计数的数目。又如以及在另一个实施方案中,媒体搜索域可提供其他类型的用于评分的信息:媒体评级计数、媒体时代、流行度、下降的流行度和/或按结果的购买数据。在又一个实例和实施方案中,维基百科搜索域可提供关于可用于排名的页面查看、编辑历史和语言数目的信息。其他搜索域可提供评分度量,诸如引文数目和时代。

在一个实施方案中,过程700从每个搜索域接收一组分数并且使用这些分数来确定每个结果的初始分数。过程700将信号域应用于每个结果。在一个实施方案中,信号域为查询补全表征。在该实施方案中,过程700表征每个查询补全并且使用此查询补全表征来为结果排名。例如并且在一个实施方案中,过程700利用知识库来执行词汇表征以确定查询补全的类型。在本实例中,查询补全类型指示查询补全是否正在确定人物、地点、事物和/或另一分类。例如并且在一个实施方案中,过程700可确定查询补全正在用于确定地点。在本实例中,因为查询补全用于确定地点,所以来自地图搜索域的查询结果的权重(以及排名)在搜索结果排名中将较高。下文在图13-15中进一步描述了查询补全表征。

在另一个实施方案中,过程700将增强应用到每个结果分数。在该实施方案中,过程700将查询值得新鲜度应用到每个结果。在一个实施方案中,查询值得新鲜度意指:如果在那些结果计数数目中存在最近峰值或峰,那么这个结果为“新鲜”结果,其可被增强。具有随着时间变化围绕基线波动的计数的结果不会是“新鲜”结果并且不会被增强。在一个实施方案中,计数基于对社交媒体馈送(例如,推特等)的分析。

例如并且在一个实施方案中,如果查询补全为“puppy love”,则返回四个结果:(1)来自媒体搜索域的歌曲“Puppy Love”;(2)来自地图搜索域的被称为“Puppy Love Dogs”的商业;(3)提及puppy love商业广告的新闻文章;和(4)被称为“Puppy Love”的维基百科条目。在该实施方案中,存在基于依赖于搜索域的度量对每个结果的初始评分:来自媒体搜索域的{时代、评级和原始分数};来自地图搜索域的{与用户的距离、具有URL、评论数目、平均评论};来自新闻域的{时代、新闻分数、引用计数};和来自维基百科搜索域的{页面排名、原始分数}。每个搜索域向过程700提供其自身的评分。在本实例中,每个结果的评分最初可被排名为维基百科结果>媒体结果>新闻结果>地图结果。过程700进一步将信号域应用到每个结果。在本实例中,查询“puppy love”被表征为歌曲和(可能)地点。应用此表征将增强媒体商店结果并且在较低程度上增强地图结果。在应用表征增强之后,结果评分可被排名为维基百科结果>媒体结果(但分数较接近)>地图结果>新闻结果。此外,过程700将查询值得新鲜度增强应用到每个结果。例如,因为这是在首次播放“Puppy Love”商业广告之后两天,所以此商业广告的计数存在增强。因此,“Puppy Love”结果将得到查询值得新鲜度增强。在本实例中,新闻结果“Puppy Love”将得到大的增强使得所述结果将被排名为新闻结果>维基百科结果>媒体结果>地图结果。

在一个实施方案中,过程700此外还过滤搜索结果。在该实施方案中,过程700基于某些规则移除结果。例如并且在一个实施方案中,过程700可移除低于某个总体分数的结果。或者,过程700可基于另一标准(例如,与查询较差的文本匹配、低点进率、低流行度、具有露骨内容和/或脏话的结果、和/或它们的组合)而过滤结果。在框710处,过程700将经过排名、过滤的结果返回给用户。

图8为将用户反馈并入到搜索索引中的系统800的框图。在图8中,系统800包括将查询前缀828发送到边缘服务器804的设备802,该边缘服务器继而将查询结果830返回到设备。此外,边缘服务器804耦接到核心服务器816。在一个实施方案中,随着用户输入查询前缀,设备802将查询前缀828发送到边缘服务器。例如并且在一个实施方案中,如果用户键入查询前缀“apple”,那么随着用户输入每个字符,将产生“a”、“ap”、“app”、“appl”和“apple”的查询前缀并将查询前缀发送到边缘服务器804。此外,对于被发送到边缘服务器804的每个查询前缀828,边缘服务器804将相关结果830返回到客户端。例如并且在一个实施方案中,边缘服务器将随着用户输入每个字符而将查询前缀828“a”、“ap”、“app”、“appl”和“apple”的相关结果返回。在一个实施方案中,边缘服务器也可执行查询补全。在一个实施方案中,设备802还收集关于用户搜索会话的反馈,将此反馈收集到反馈包832中,并将反馈包发送到边缘服务器。下文在图10中进一步描述反馈的收集和发送。在一个实施方案中,设备802包括用于收集并发送反馈的收集反馈模块838。

在一个实施方案中,边缘服务器804包括反馈模块806,该反馈模块还包括反馈搜索模块808和反馈收集模块810。在一个实施方案中,反馈搜索模块808基于存储在边缘服务器804的边缘高速缓存812上的反馈索引814而执行每个查询前缀828的搜索。在该实施方案中,随着用户输入查询前缀828,使用反馈搜索模块808和反馈搜索索引814将新的一组相关结果830返回到设备802。在一个实施方案中,反馈搜索索引是将用户的反馈并入到搜索索引中的索引。在该实施方案中,反馈搜索索引是用于快速地将结果830供应回到设备的结果高速缓存。在一个实施方案中,反馈搜索索引是引文搜索索引并且在下文参考图11作进一步描述。在一个实施方案中,反馈收集810收集从设备802发送的反馈包并且将反馈包转发到核心服务器816。

在一个实施方案中,核心服务器816包括反馈馈送管道818、反馈决策管道822、反馈索引820和联合器824。在一个实施方案中,反馈馈送管道818从边缘服务器804接收原始反馈包834并且将这些原始反馈包834中的每个转换成反馈索引820的条目。在一个实施方案中,反馈馈送管道816将每个原始反馈包转换成一组索引条目,索引条目的格式为<query,result,render counts,engagement counts,abandonment counts>,其中query是输入查询和上下文信息,诸如设备类型、应用程序、场所和地理位置,result是渲染结果,render counts是针对该查询渲染结果的次数,engagement counts是针对该查询采用结果的次数,并且abandonment counts是放弃结果的次数。在该实施方案中,将这些索引条目添加到反馈索引820。下文在图11中进一步描述用原始反馈包来更新反馈索引。在一个实施方案中,反馈索引820是结合用户反馈的搜索索引。反馈馈送管道818还包括用原始反馈包来更新反馈索引的处理反馈模块840。

在一个实施方案中,反馈决策管道822使用反馈索引820来更新结果集合。在一个实施方案中,结果集合是一组查询和结果之间的映射。在该实施方案中,反馈决策管道822运行针对反馈索引820的一组查询以确定经更新的结果集合。在该实施方案中,经更新的结果集合被发送到联合器824。反馈决策管道822此外还将经更新的结果集合826发送到边缘服务器804。经更新的结果集合826包括使用经更新的反馈索引820确定的该组查询的结果。在一个实施方案中,反馈决策管道822包括对结果集合进行更新的更新结果模块842。下面在图12中进一步描述了对结果集合进行更新。在一个实施方案中,反馈决策管道822此外还将经更新的结果集合发送到存储经更新的结果集合826的反馈存档836。在一个实施方案中,联合器824如下文在图13-15中所述使用补全后的查询来执行多域搜索。

如上文所述,搜索网络捕获关于用户搜索会话的用户反馈并且使用这个反馈来建立搜索反馈索引。图9为用于将用户反馈并入到引文搜索索引中的过程900的一个实施方案的流程图。在图9中,过程900始于收集用户搜索会话的用户反馈。在一个实施方案中,过程900开始在响应于被发送到搜索网络的查询前缀而接收到查询结果的设备处收集反馈。在该实施方案中,过程900通过检测初始渲染事件(或另一事件(例如,查询前缀的开始输入))以及确定用户在搜索会话中的互动而收集反馈。在一个实施方案中,用户互动可以是将焦点维持在由结果标引的网站上、点击该网站上的链接或其他引用、或另一类型的互动。在一个实施方案中,搜索会话是通过用户开始查询前缀的输入、跟踪用户在粗略时间段(例如,15分钟)内的动作而起始的一组事件。在一个实施方案中,过程900记录发出的查询前缀、为用户渲染的相关结果、用户是否与这些渲染结果中的任何结果建立关系(例如,“采用事件”)、以及用户是否放弃渲染的结果(“放弃事件”)。在一个实施方案中,过程900记录用户是否进行替代搜索选项。

在一个实施方案中,在用户与呈现给用户的渲染结果中的一个互动的情况下,采用事件发生。例如并且在一个实施方案中,用户可点击针对渲染结果中的一个所呈现的链接。在另一实例中,用户可点击链接并且花费多于预定时间的时间与由该链接标引的对象(例如,网站)互动(例如,与所标引的对象互动超过60秒)。在本实例中,用户可接收涉及现任美国总统的查询搜索的结果并且点击标引描述最近总统演讲的网页的链接。如果用户与网站互动超过预定时间(例如,60-90秒),那么过程900将确定用户与由该链接标引的结果建立关系。因此,这将是针对此结果的采用事件。在一个实施方案中,悬停在链接上可被记录为采用。在另一个实施方案中,用户也可观察所显示的结果持续某段时间。在该实施方案中,取决于结果的类型,和继该段时间之后的动作,原本被记录为放弃的动作相反可被记录为采用,或反之亦然。例如并且在一个实施方案中,如果用户查询“中国人口”并且结果被显示,且用户在删除查询之前停顿10秒,那么此事件可被记录为采用而非放弃事件。

在另一个实施方案中,用户可忽略或放弃为用户渲染的结果。例如并且在一个实施方案中,如果用户点击针对渲染结果中的一个所呈现的链接,但是在预定时间内离开该网站(例如,短于60-90秒),那么过程900确定这是对该结果的放弃事件。在一个实施方案中,存在其他类型的放弃事件:继续键入更多字符(扩展查询前缀);将焦点改变至另一窗口或应用程序;删除查询;退回一个或多个字符或以其他方式编辑查询;与除作为结果进行呈现之外的可被记录为结果放弃的任何事建立关系。在一个实施方案中,用户动作连同用户所花的时间间隔被一起记录,这可将对原本为放弃的判读改成采用,或反之亦然。

在一个实施方案中,用户的搜索会话可在预定时间(不管是用户会话的长度、不活动的时间还是某些其他度量)之后结束。响应于搜索会话结束,过程900将为此搜索会话所收集的事件汇集成被发送到搜索网络的反馈包。下文在图10中进一步描述了对反馈的收集。

在框904处,过程900处理包括在反馈包中的所接收反馈。在一个实施方案中,过程900将所接收的反馈包转换成用于反馈搜索索引的条目。在一个实施方案中,反馈搜索索引是将用户反馈并入到评分结果中的搜索索引。例如并且在一个实施方案中,(查询,结果)对的每次采用事件提升对应查询的该结果。在本实例中,如果用户参与特定查询的结果,那么未来用户也可能参与相同查询的这个结果。因此,在一个实施方案中,此查询的结果将针对具有相同查询的未来用户被返回并且排名更高。相反地,如果用户放弃特定查询的结果,那么未来用户也可能放弃相同查询的此相同结果。因此,在一个实施方案中,此查询的结果可针对具有相同查询的未来用户被返回并且排名更低。

在一个实施方案中,过程900将所接收的反馈包转换成具有以下格式的反馈搜索索引条目:<query,result,render counts,engagement counts,abandonment counts>,其中query是输入查询和上下文信息,诸如设备类型、应用程序、场所和地理位置,result是渲染结果,render counts是针对该查询渲染结果的次数,engagement counts是针对该查询采用结果的次数,并且abandonment counts是放弃结果的次数。在一个实施方案中,过程900更新反馈搜索索引中的此反馈索引条目。在又一个实施方案中,每个反馈包还包括唯一资源标识符,该唯一资源标识符可包括用户标识符、设备标识符或会话标识符,具有或不具有用于模糊身份而保证隐私的方法,其中更新反馈索引条目就以引文索引的形式附加到索引,而唯一资源标识符为反馈引文的源。然后可查询反馈索引以提供对个人或用户组个性化或定制的结果和权重。下文在图11中进一步描述了处理所接收的反馈。

过程900在框906处更新结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可用于快速返回用于查询的结果。在一个实施方案中,结果高速缓存被存储在紧邻用户设备的边缘服务器中,可用于在执行查询搜索之前供应一个或多个结果(例如,在地理上相比于其他边缘服务器更靠近客户端的边缘服务器)。在一个实施方案中,过程900通过使用经更新的反馈搜索索引来运行一组查询以确定这些查询的一组结果而更新结果。这些更新后的结果被发送到存储在边缘服务器上的每个结果高速缓存。下文在图12中进一步描述了对结果高速缓存进行更新。

图10为用于在用户搜索会话期间收集用户反馈的过程1000的一个实施方案的流程图。在一个实施方案中,过程100由用于在用户搜索会话期间收集用户反馈的收集反馈模块执行,诸如如上文在图8中所述的收集反馈模块838。在图10中,过程1000始于检测触发反馈收集的事件。在一个实施方案中,初始事件可以为另一类型事件的查询前缀字符串的输入的开始。在一个实施方案中,如果用户已经在一段时间(例如,15分钟)内参与了先前的搜索会话,那么此查询前缀字符串的输入的开始将标记新用户搜索会话的开始并且开始用户反馈的记录。如上文所述,搜索会话是通过用户开始查询前缀的输入、跟踪用户在粗略的时间段(例如,15分钟)内的动作而起始的一组事件。

在框1004处,过程1000记录与用户搜索会话相关联的事件。在一个实施方案中,过程1000记录渲染、采用和放弃事件。在一个实施方案中,渲染事件是响应于用户输入查询前缀或完整查询而为用户渲染的相关结果。在一个实施方案中,过程1000通过记录针对每个查询前缀或完整查询呈现的结果而记录渲染事件。此外,过程1000在框1004处记录采用事件。在一个实施方案中,采用事件是在用户与呈现给用户的渲染结果中的一个互动的情况下发生的事件。例如并且在一个实施方案中,用户可点击针对渲染结果中的一个所呈现的链接。在另一实例中,用户可点击链接并且花费多于预定时间的时间与由该链接标引的对象(例如,网站)互动(例如,与所标引的对象互动超过60秒)。在本实例中,用户可接收涉及现任美国总统的查询搜索的结果并且点击标引描述最近总统演讲的网页的链接。如果用户与网站互动超过预定时间(例如,60-90秒),那么过程1000将确定用户与由该链接标引的结果建立关系。因此,这将是针对此结果的采用事件。

在又一个实施方案中,过程1000可记录放弃事件,其中放弃事件为其中用户可忽略或放弃为用户渲染的结果的事件。例如并且在一个实施方案中,如果用户点击针对渲染结果中的一个所呈现的链接,但是在预定时间内离开该网站(例如,短于60-90秒),那么过程900确定这是对该结果的放弃事件。在一个实施方案中,用户通过关闭呈现网站的选项卡或窗口、改变焦点至另一应用程序、或指示用户不与所呈现的网站互动的某种其他动作而离开。

在框1006处,过程1000从所记录的用户搜索会话的事件创建反馈包。在一个实施方案中,用户的搜索会话通过基于自初始搜索会话事件起的预定时间(例如,15分钟)而结束,或者可为关于用户搜索会话的预定时间的用户不活动。例如并且在一个实施方案中,如果用户在预定时间量(例如,10分钟)内没有活动或没有与结果或由所述结果中的一个标引的其他类型的对象互动,那么用户的搜索会话将结束。在一个实施方案中,响应于用户搜索会话的结束,过程1000将收集所记录的事件并且从该用户搜索会话创建反馈包。在一个实施方案中,反馈包包括为用户渲染的一组结果、与那些结果相关的查询、用户采用查询结果的采用事件、以及用户放弃为用户渲染的结果的放弃事件,其中每个放弃事件与查询相关联。过程1000在框1008处将这个反馈包发送到搜索网络。在一个实施方案中,客户端将反馈包发送到边缘服务器,其中边缘服务器将反馈包转发到核心服务器用于处理。

图11为用于将用户反馈并入到反馈索引中的过程1100的一个实施方案的流程图。在一个实施方案中,处理反馈模块执行处理反馈模块,诸如如上文在图8中所述的处理反馈模块840。在图11中,过程1100始于在框1102处接收反馈包。在一个实施方案中,反馈包为如上文在图10中所述的用户搜索会话的反馈包。在框1104处,过程1100将反馈包转换成一个或多个反馈索引条目。在一个实施方案中,反馈索引条目是为特定查询/结果对所记录的事件数目。例如并且在一个实施方案中,反馈索引条目包括<query,result,render counts,engagement counts,abandonment counts>,其中query是输入查询和上下文信息,诸如设备类型、应用程序、场所和地理位置,result是渲染结果,render counts是针对该查询渲染结果的次数,engagement counts是针对该查询采用结果的次数,并且abandonment counts是放弃结果的次数。

在框1106处,过程1100将反馈索引条目插入到反馈索引中。在一个实施方案中,反馈索引是将用户反馈并入到搜索索引中的搜索索引。在一个实施方案中,反馈索引是引文索引,其中采用事件是对结果的肯定引证,而放弃事件是对该结果的否定引证。在一个实施方案中,在标题为“Ranking and Selecting Entities Based on Calculated Reputation or Influence Scores”(基于计算的信誉或影响得分为条目排名并选择条目)的、于2009年12月1日提交的且并入本文的美国专利申请No.12/628,791中描述了引文搜索索引。在一个实施方案中,如果在反馈索引中存在具有相同查询/结果对的条目,那么过程1100用事件计数数目更新此条目。

如上文所述,并有反馈索引的用户反馈可用于更新结果高速缓存。图12为用于使用用户反馈来更新结果高速缓存的过程1200的一个实施方案的流程图。在一个实施方案中,更新结果模块(诸如如上文在图8中所述的更新结果模块842)执行用于更新结果高速缓存的过程1200。在图12中,过程1200始于接收包括多个查询的结果集合RS。在一个实施方案中,结果集合是一组查询和结果之间的映射。此结果集合可用于结果高速缓存以快速返回如上文在图8中所述的查询前缀的相关结果。在一个实施方案中,结果集合由不包括用户反馈的搜索索引生成。在另一个实施方案中,结果集合由并有先前用户反馈的先前反馈索引生成。

在框1204处,过程1200从结果集合RS针对当前反馈索引运行每个查询。过程1200在框1204中使用来自运行查询的结果来在框1206处创建更新结果集合RS’。在一个实施方案中,结果集合RS’是反馈加权的结果集合,其中具有较多采用事件的查询的结果在反馈索引中的权重较高,而具有较多放弃事件的该查询的结果在反馈索引中的权重较低。例如并且在一个实施方案中,如果结果集合RS中的查询Q将具有排名为R1、R2和R3的结果,并且在更新后的反馈索引中使Q的这些结果作为具有20个采用事件和50个放弃事件的R1、具有100个采用事件和2个放弃事件的R2、和具有50个采用事件和10个放弃事件的R3,那么针对更新后的反馈索引运行查询Q可以按R2、R3和R1返回排名结果。因此,在一个实施方案中,使用反馈索引将变更结果在更新后的结果集合RS’中的排名。在另一个实施方案中,相关结果过滤器可具有如下规则:对于待呈现的结果,所述结果可能需要x个采用事件或不超过y个放弃事件。因此,在本实施方案中,使用反馈索引可变更哪些结果被呈现并且哪些结果不被呈现。过程1200在框1208处将更新后的结果集合RS’发送到每个边缘服务器。在一个实施方案中,过程1200将更新后的结果集合RS’从核心服务器816发送到如上文在图8中所述的边缘服务器804。

图13为使用经表征的查询补全来执行多域搜索的联合器824的一个实施方案的框图。在一个实施方案中,联合器包括补全模块1304、混合器/排名器1306、多个搜索域1308A-F和词汇服务1314。在一个实施方案中,补全模块1304如上文在图6中所述确定每个查询前缀的查询补全。所确定的查询补全被转发到混合器/排名器1306,该混合器/排名器使用所述查询补全来利用搜索域1308A-F执行相关结果的多域搜索,如上文在图7中所述。在一个实施方案中,搜索域1308A-F为如上文在图3中所述的搜索域。例如并且在一个实施方案中,地图搜索域1308A是如上文在图3中所述包括与地理地图相关的信息的搜索域。地图搜索域1308A从地图数据源1310A查询信息。媒体搜索域1308B是如上文在图3中所述与媒体相关的搜索域。媒体搜索域1308B从媒体数据源1310B查询信息。维基百科搜索域1308C是如上文在图3中所述的在线百科全书搜索域。维基百科搜索域1308C从维基百科数据源1310C查询信息。网站搜索域1308D是如上文在图3中所述的网站的搜索域。网站搜索域1308D从网站数据源1310D查询信息。所述其他搜索域是如上文在图3中所述可被混合器/排名器1306访问的一组其他搜索域。所述其他搜索域1308E从其他数据源1310E查询信息。在一个实施方案中,反馈搜索域1308F是如图3中所述基于由在各种设备上运行的浏览器所收集的查询反馈的搜索索引。反馈搜索域1308从反馈数据源1310F(例如,反馈搜索索引)查询信息。

此外,混合器/排名器1306从所述多个搜索域1308A-F接收结果并且为这些结果排名。在一个实施方案中,混合器/排名器1306使用确定执行哪种搜索类型的词汇服务1302来表征每个查询补全。例如并且在一个实施方案中,词汇服务1302可确定搜索是否针对人物、地点、事物等。在一个实施方案中,词汇服务1302使用将字词或短语映射到分类的知识库1312。在该实施方案中,表征查询补全是用于加权由搜索域1308A-F返回的结果。例如并且在一个实施方案中,如果查询补全被表征为对地点的搜索,那么来自地图搜索域的结果的排名以及关于这个地点的维基百科条目的排名可较高。又如,如果查询补全被指示为关于艺术家,那么媒体搜索域结果的排名可较高。下文在图14中进一步描述了对结果进行加权。

图14为用于使用查询补全的词汇服务来确定相关结果的过程1400的一个实施方案的流程图。在一个实施方案中,混合器/排名器1306执行如上文在图13中所述使用查询补全的词汇服务来确定相关结果的过程1400。在图14中,过程1400始于在框1402处接收查询补全。在一个实施方案中,所接收的查询补全为响应于接收查询前缀而由过程600确定的补全。在一个实施方案中,过程1400以一个并行流执行框1404和1408并且以另一并行流执行框1406和1410。在框1404处,过程1400将查询补全发送到不同搜索域以确定可能的相关结果。在一个实施方案中,每个搜索域使用所接收的查询补全来确定该搜索域的相关结果。在一个实施方案中,多搜索域并行处理每个查询补全。过程1400将查询补全发送给词汇服务以表征每个补全。在一个实施方案中,词汇服务通过确定查询补全是关于人物、地点、事物还是另一类型的信息的查询而表征每个查询补全。下文在图15中进一步描述了对查询补全进行表征。过程1400在框1408处从所述多个搜索域接收搜索结果。在一个实施方案中,每个搜索结果包括表征来自对应搜索域的该结果的一组分数。

在框1410处,过程1400接收表征查询补全的

词汇搜索结果。在一个实施方案中,查询补全的表征指示每个查询补全正在搜索的信息的类型。例如并且在一个实施方案中,查询补全是关于人物、地点、事物或另一类型的信息的查询。在一个实施方案中,所述两个并行流在框1412处会聚。过程1400在框1412处使用查询补全表征来为该查询补全的相关结果排名并过滤所述相关结果。在一个实施方案中,如果查询补全被指示为是对人物的搜索,那么来自维基百科域的关于来自所述搜索的人物结果的结果的排名可较高。例如并且在一个实施方案中,如果查询补全被表征为是对电影的搜索,那么来自该电影的评论或地区上映时间的结果的排名可较高。又如,如果查询补全被指示为是地点,那么来自地图搜索域的结果的排名以及关于这个地点的维基百科条目的排名可较高。又如,如果查询补全被指示为是关于艺术家,那么媒体搜索域结果的排名可较高。上文在图7中也描述了使用查询补全来进行排名。在另一个实施方案中,反馈索引可为用于为相关结果排名和/或过滤相关结果的信号域。在本实施方案中,过程1400使用采用事件的数目来将结果排名得较高并且使用放弃事件的数目来将结果排名得较低。在一个实施方案中,过程1400此外还如上文图7的框708中所述为结果排名并过滤结果。过程1400在框1414处返回经排名、过滤的结果。

如上文所述,过程1400使用词汇服务来表征查询补全。图15为用于表征查询补全的过程1500的一个实施方案的流程图。在图15中,过程1500在框1502处接收查询补全。在框1504处,过程1500使每个查询补全符号化。在一个实施方案中,使补全符号化是将查询补全分离成单独的符号(例如,字词、短语、多个/单个变动)。对于使查询补全符号化,过程1500确定知识库中的符号化补全的匹配。在一个实施方案中,知识库是映射到分类的字词或短语的数据库。例如并且在一个实施方案中,知识库可包括诸如{埃菲尔铁塔→地点}、{迈克尔·杰克逊→艺术家}、{巴拉克·奥巴马→总统}、{黑寡妇→蜘蛛}等条目。在一个实施方案中,知识库使用本体论建立。在一个实施方案中,过程1500使用术语频率匹配算法来确定知识库中的查询补全的匹配。例如并且在一个实施方案中,如果查询补全为“谁是迈克尔·杰克逊?”,那么过程1500可匹配于术语“迈克尔”、“杰克逊”或“迈克尔·杰克逊”。在本实例中,过程1500将试图在知识数据库中寻找最长的匹配。如果知识库具有“迈克尔”、“杰克逊”和“迈克尔·杰克逊”的匹配,那么将使用“迈克尔·杰克逊”的匹配。如果存在一个或多个查询补全的匹配,那么过程1500在框1508处返回匹配。例如并且在一个实施方案中,过程150可返回“谁是迈克尔·杰克逊”的查询补全的“人物”、“艺术家”或另一类型的表征。如果不存在匹配,那么过程1500无表征返回。

图16为用于从多个搜索域确定查询补全的补全模块1600的一个实施方案的框图。在一个实施方案中,补全模块1600包括接收查询前缀模块1602、发送前缀模块1604、接收补全模块1606、排名和过滤补全模块1608、以及发送补全模块1610。在一个实施方案中,接收查询前缀模块1602如上文图6的框602中所述接收查询前缀。发送前缀模块1604如上文图6的框604中所述将查询前缀发送到所述不同搜索域。接收补全模块1606如上文图6的框606中所述接收查询补全。排名和过滤补全模块1608如上文图6的框608中所述为所接收的查询补全排名并过滤所接收的查询补全。发送补全模块1610如上文图6的框610中所述将查询补全发送到相关结果模块。

图17为用于从所确定的查询补全在多个搜索域上确定相关结果的结果模块1700的一个实施方案的框图。在一个实施方案中,结果模块1700包括接收查询补全模块1702、发送补全模块1704、接收查询结果模块1706、排名和过滤模块1708、以及返回结果模块1710。在一个实施方案中,接收查询补全模块1702如上文图7的框702中所述接收查询补全。发送补全模块1704如上文图7的框704中所述将补全发送到所述多个搜索域。接收查询结果模块1706如上文图7的框706中所述从所述多个搜索域接收查询结果。排名和过滤模块1708如上文图7的框708中所述为查询结果排名并过滤查询结果。返回结果模块1710如上文图7的框710中所述返回查询结果。

图18为用于在用户搜索会话期间收集用户反馈的收集反馈模块838的一个实施方案的框图。在一个实施方案中,收集反馈模块838包括检测初始事件模块1802、记录事件模块1804、创建反馈包模块1806和发送反馈模块1808。在一个实施方案中,检测初始事件模块1802如上文图10的框1002中所述检测初始事件以开始用户搜索会话。记录事件模块1804如上文图10的框1004中所述在用户搜索会话期间记录事件。创建反馈包模块1806如上文图10的框1006中所述创建反馈包。发送反馈模块1808如上文图10的框1008中所述发送反馈包。

图19为用于将用户反馈并入到反馈索引中的处理反馈模块840的一个实施方案的框图。在一个实施方案中,处理反馈模块840包括接收反馈包模块1902、转换反馈包模块1904和插入反馈条目模块1906。在一个实施方案中,接收反馈包模块1902如图11的框1102中所述接收反馈模块。转换反馈包模块1904如图11的框1104中所述转换反馈包。插入反馈条目模块1906如图11的框1106中所述插入反馈索引条目。

图20为用于使用用户反馈来更新结果高速缓存的更新查询结果模块842的一个实施方案的框图。在一个实施方案中,更新结果高速缓存842包括接收结果集合模块2002、运行查询模块2004、更新结果集合模块2006和发送更新结果模块2008。在一个实施方案中,接收结果集合模块2002如图12的框1202中所述接收结果集合。运行查询模块2004如图12的框1204中所述使用反馈索引来运行查询。更新结果集合模块2006如图12的框1206中所述更新结果集合。发送更新结果模块2008如图12的框1202中所述发送更新结果集合。

图21为用于使用查询补全的词汇服务来确定相关结果的相关结果模块2100的一个实施方案的框图。在一个实施方案中,相关结果模块2100包括接收补全模块2102、发送补全模块2104、词汇补全模块2106、接收结果模块2108、接收词汇结果模块2110、排名结果模块2112、以及返回结果模块2114。在一个实施方案中,接收补全模块2102如图14的框1402中所述接收查询补全。发送补全模块2104如图14的框1404中所述将查询补全发送到所述多个搜索域。词汇补全模块2106如图14的框1406中所述将查询补全发送到词汇服务。接收结果模块2108如图14的框1408中所述从所述多个搜索域接收查询结果。接收词汇结果模块2110如图14的框1410中所述接收词汇服务表征。排名结果模块2112如图14的框1412中所述为搜索域结果排名。返回结果模块2114如图14的框1414中所述返回排名结果。

图22为用于表征查询补全的表征查询模块2200的一个实施方案的框图。在一个实施方案中,表征查询结果模块2200包括接收补全模块2202、符号化补全模块2204、寻找匹配模块2206、以及返回表征模块2208。在一个实施方案中,接收补全模块2202如上文图15的框1502中所述接收补全。符号化补全模块2204如上文图15的框1504中所述使补全符号化。寻找匹配模块2206如上文图15的框1506中所述在知识库中寻找符号化补全的匹配。返回表征模块2208如图15的框1508中所述返回表征。

图23示出了数据处理系统2300的一个实例,该数据处理系统可与本发明的一个实施方案一起使用。例如,系统2300可被实施为包括如图1所示的设备100。注意,虽然图23示出了计算机系统的各种部件,但是它并不旨在表示使这些部件互连的任何特定构造或方式,因为这些细节与本发明并无密切关系。还应理解,具有更少部件或可能更多部件的网络计算机以及其他数据处理系统或其他消费电子设备也可与本发明一起使用。

如图23所示,数据处理系统形式的计算机系统2300包括耦接到一个或多个微处理器2305、ROM(只读存储器)2307、易失性RAM 2309和非易失性存储器2311的总线2303。微处理器2305可包括一个或多个CPU、GPU、专用处理器和/或它们的组合。微处理器2305可从存储器2307、2309、2311检索指令并执行所述指令以执行上述操作。总线2303与这些各种部件互连在一起,并且将这些部件2305、2307、2309和2311互连至显示控制器和显示设备2313并且将这些部件互连至外围设备诸如输入/输出(I/O)设备,该输入/输出(I/O)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备2315通过输入/输出控制器2313耦接到系统。易失性RAM(随机存取存储器)2309通常被实现为需要连续供电以刷新或保持存储器中的数据的动态RAM(DRAM)。

海量存储装置2311通常为磁性硬盘驱动器或磁性光驱或光驱或DVD RAM或闪存存储器或者即使在系统断电后也保持数据(例如,大量数据)的其他类型的存储器系统。通常,海量存储装置2311也可以是随机存取存储器,虽然这并非是必需的。虽然图23示出了海量存储装置2311为直接耦接到数据处理系统中的其余部件的本地设备,但应当理解,本发明可利用远离系统的非易失性存储器,诸如通过网络接口诸如调制解调器、以太网接口或无线网络耦接到数据处理系统的网络存储设备。总线2303可包括通过本领域熟知的各种桥接器、控制器和/或适配器相互连接的一条或多条总线。

图24示出了另一数据处理系统2400的一个实例,该数据处理系统可与本发明的一个实施方案一起使用。例如,系统2400可被实现为图1所示的设备100。图24所示的数据处理系统2400包括处理系统2411,该处理系统可为一个或多个微处理器,或可为片上系统集成电路,并且所述系统还包括用于存储数据和程序以供处理系统执行的存储器2401。系统2400还包括音频输入/输出子系统2405,该音频输入/输出子系统可以包括麦克风和扬声器,以用于例如播放音乐,或通过扬声器和麦克风提供电话功能。

显示控制器和显示设备2409为用户提供可视用户界面;此数字界面可包括图形用户界面,所述图形用户界面类似于运行OS X操作系统软件时显示在麦金塔计算机上或运行iOS操作系统时显示在Apple iPhone上的图形用户界面。系统2400还包括用于与另一数据处理系统(诸如图24的系统2400)通信的一个或多个无线收发器2403。无线收发器可为WLAN收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。应当理解,未示出的额外部件在某些实施方案中也可以是系统2400的部分,并且在某些实施方案中,也可以在数据处理系统中使用比图24中所示更少的部件。系统2400还包括用于与另一数据处理系统(诸如图15的系统1500)通信的一个或多个通信端口2417。通信端口可为USB端口、火线端口、

蓝牙接口等。

数据处理系统2400还包括一个或多个输入设备2413,提供所述输入设备以允许用户向系统提供输入。这些输入设备可为小键盘或键盘或触摸面板或多点触摸面板。数据处理系统2400还包括可为对接器的连接器的任选的输入/输出设备2415。应当理解,如本领域所熟知的,可以使用未示出的一条或多条总线互连各种部件。图24所示的数据处理系统可以为手持式计算机或个人数字助理(PDA)、或具有像PDA那样的功能的蜂窝电话、或包括蜂窝电话的手持式计算机、或诸如iPod的媒体播放器、或组合这些设备的多个方面或功能的设备,诸如在一台设备或嵌入式设备或其他消费电子设备中与PDA和蜂窝电话组合的媒体播放器。在其他实施方案中,数据处理系统2400可以为网络计算机或另一设备内的嵌入式处理设备,或其他类型的数据处理系统,其比图24所示的系统具有更少的部件或可能更多的部件。

本发明的至少某些实施例可以是数字媒体播放器的一部分,例如便携式音乐和/或视频媒体播放器,数字媒体播放器可包括呈现媒体的媒体处理系统、存储媒体的存储设备,并且可以进一步包括与天线系统和媒体处理系统耦合的射频(RF)收发器(例如,用于蜂窝电话的RF收发器)。在某些实施例中,存储在远程存储设备上的媒体可通过RF收发器发送到媒体播放器。例如,媒体可以是音乐或其他音频、静态图片或运动图片中的一个或多个。

便携式媒体播放器可包括媒体选择设备,例如得自Apple Inc.(Cupertino,CA)的或iPod媒体播放器上的点击轮(click wheel)输入设备、触摸屏输入设备、按钮设备、可移动指示输入设备或其他输入设备。可以使用媒体选择设备来选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施例中,便携式媒体播放器可包括显示设备,该显示设备耦合到媒体处理系统以显示通过输入设备选择的并且通过扬声器或耳机或者在显示设备上、或者在显示设备上且在扬声器或耳机上呈现的媒体的标题或其他指示符。便携式媒体播放器的实例在已公布的美国专利号7,345,671和美国公布专利号2004/0224638中有所描述,这两项专利以引用的方式并入本文中。

上述内容的部分可使利用辑电路诸如专用逻辑电路来实现,或利用微控制器或用于执行程序代码指令的其他形式的处理核心来实现。从而,可利用程序代码诸如机器可执行指令来执行上述讨论所教导的过程,该机器可执行指令使得机器执行这些指令以执行某些函数。在该上下文中,“机器”可为将中间形式(或“抽象”)指令转换为特定于处理器的指令(例如,抽象执行环境诸如“虚拟机”(例如,Java虚拟机)、解译器、公共语言运行时、高级语言虚拟机等)的机器,和/或被设置在半导体芯片(例如,利用晶体管实现的“逻辑电路”)上的电子电路,该电子电路被设计用于执行指令,该处理器诸如通用处理器和/或专用处理器。上述讨论所教导的过程也可通过(作为机器的替代或与机器结合)电子电路来执行,该电子电路被设计用于执行过程(或其一部分)而不执行程序代码。

本发明还涉及一种用于执行本文所述的操作的装置。该装置可专门构造用于所需的目的,或者其可包括由被存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可被存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘,只读存储器(ROM)、RAM、EPROM、EEPROM、磁卡或光卡、或适用于存储电子指令的任何类型的介质,并且每一者均耦接到计算机系统总线。

机器可读介质包括以机器(例如,计算机)可读形式存储或传输信息的任何机构。例如,机器可读介质包括只读存储器(“ROM”);随机存取存储器(“RAM”);磁盘存储介质;光学存储介质;闪存存储器设备等。

制造的制品可用于存储程序代码。存储程序代码的制造的制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存存储器、随机存取存储器(静态、动态或其他))、光盘、CD-ROM、DVD ROM、EPROM、EEPROM、磁卡或光卡、或适用于存储电子指令的其他类型的机器可读介质。也可借助于包含在传播介质(例如,经由通信链路(例如网络连接))中的数据信号将程序代码从远程计算机(例如,服务器)下载到请求计算机(例如,客户端)。

已按照对计算机存储器内的数据位进行操作的算法和符号表示来呈现前面的详细描述。这些算法描述和表示是数据处理领域的技术人员所使用的工具,而这些工具也能最有效地将其工作实质传达给该领域的其他技术人员。算法在这里并通常是指导致所希望的结果的操作的自相一致的序列。操作是需要对物理量进行物理操纵的那些操作。通常,尽管不是必须的,但这些量采用能够被存储、传送、组合、比较以及换句话讲操纵的电信号或磁信号的形式。已被证明其在主要出于通用原因而将这些信号指代为位、值、元素、符号、字符、术语、数字等时是方便的。

然而,应当牢记的是,所有这些以及类似的术语都与适当的物理量相关联,并且其只是应用于这些量的方便标签。除非另外特别说明,否则从上述讨论中显而易见的是,可以理解,在整个说明书中,使用诸如“检测”、“排名”、“接收”、“确定”、“计算”、“发送”、“修改”、“符号化”、“过滤”、“添加”、“创建”、“寻找”等术语的讨论是指对计算机系统或类似的电子计算设备的行动和处理,这些动作和处理对计算机系统的寄存器和存储器中表示为物理(电子)量的数据进行操纵,并将其转换成在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中相似地表示为物理量的其他数据。

本文中所呈现的过程和显示并不固有地与任何特定计算机或其他装置相关。根据本文的教导内容,各种通用系统可与程序一起使用,或者可证明其便于构造用于执行所述操作的更专用的装置。根据下文的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言进行描述。应当理解,多种编程语言可用于实现如本文所述的本发明的教导内容。

前面的讨论仅描述了本发明的一些示例性实施例。本领域的技术人员将易于从此类讨论、附图和权利要求书中认识到,可在不脱离本发明的实质和范围的情况下进行各种修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1