利用外部上下文针对相关性将查询结果进行排名的制作方法

文档序号:17486364发布日期:2019-04-20 06:51阅读:185来源:国知局
利用外部上下文针对相关性将查询结果进行排名的制作方法

在企业设定中,除了用户已经创建或者与他们自己交互的文档,用户最有可能搜索他们“周围”的文档,例如由在用户周围工作或与用户协同的其他用户创建、阅读、或修改的文档,用户常去的站点上的文档,和/或与他们在从事的工程或任务相关联的文档。然而,经由该类型的外部用户上下文进行搜索常常对搜索系统而言是不可用的。替代地,用户可能仅能够在具体的位置(例如,给定文件夹或协同站点)中针对文档进行搜索,这需要用户知道并记住该文档被存储的位置。



技术实现要素:

提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在排他地标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

实施例针对基于外部上下文的对查询结果的相关性排名。搜索服务可以接收查询和外部上下文列表,确定该外部上下文列表中的每个条目的相关性值,并且执行查询,其中搜索索引包括可以响应于查询的执行而被返回的项目。该搜索服务可以接着将外部上下文列表中的条目针对所述项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,基于针对所述项目所计算的分数来将查询的结果进行排名。

这些和其他特征和优点将通过阅读以下的详细描述以及回顾相关联的附图而是显而易见的。所要理解的是,之前的一般描述和以下的详细描述两者都是解释性的而不限制所要求保护的方面。

附图说明

图1包括其中可以实现被配置为基于外部上下文来针对相关性将查询结果进行排名的系统的示例网络环境;

图2示出了被配置为基于外部上下文来针对相关性将查询结果进行排名的系统的示例架构;

图3示出了用于基于外部上下文来针对相关性将查询结果进行排名的过程的全部三个阶段的示例架构;

图4包括用于显示外部上下文列表的示例用户体验配置;

图5a-b包括用于与查询进行交互以使得可以基于外部上下文来针对相关性将查询的结果进行排名的示例用户体验配置。

图6是其中可以实现根据实施例的系统的网络化环境;

图7是可以用于基于外部上下文来针对相关性将查询结果进行排名的示例通用计算设备的框图;

图8示出了用于基于外部上下文来针对相关性将查询结果进行排名的方法的逻辑流程图;以及

图9示出了根据实施例的用于基于外部上下文来针对相关性将查询结果进行排名的方法的逻辑流程图。

具体实施方式

如上文简要描述的,实施例针对基于外部上下文对查询结果的相关性排名。例如,搜索服务可以接收查询和外部上下文列表。上下文列表的条目可以包括人、团队、小组、组织、站点、或标签。搜索服务可以基于从目录服务、协同服务、通信服务、和/或生产力服务背景框架所取回的信息来确定外部上下文列表中的每个条目的相关性值,其中,所述相关性值可以是基于每个条目与提供外部上下文列表的用户之间的联系的顺序、关系的接近度的。接着,搜索服务可以执行查询,其中,搜索索引包括可以响应于查询的执行而被返回的项目。搜索服务可以在搜索服务的内部搜索引擎处执行查询,或者可以将查询提供至外部搜索引擎以供执行。接着,搜索服务可以将外部上下文列表中的条目针对所述项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,基于针对所述项目所计算的分数来将查询的结果进行排名。

在以下的详细描述中,对形成了本文的一部分的并且其中通过具体实施例或示例的方式示出的附图进行了参考。可以组合这些方面,可以利用其他方面,并且可以在不脱离本公开的精神和范围的情况下进行结构性改变。因此,以下的详细描述不被认为是限制性意义,并且本发明的范围是由所附权利要求及其等同物来限定的。

尽管将在结合在个人计算机上的操作系统上运行的应用程序而执行的程序模块的通用上下文中描述实施例,但本领域的技术人员将理解的是,也可以结合其他程序模块来实现这些方面。

通常而言,程序模块包括例程、程序、组件、数据结构、以及执行特定的任务或实现特定的抽象数据类型的其他类型的结构。此外,本领域技术人员将理解的是,可以利用包括手持设备、多处理器系统、基于微处理器的或可编程的消费性电子产品、微型计算机、大型计算机、以及类似的计算设备在内的其他计算机系统配置来实践实施例。还可以在其中由通过通信网络所链接的远程处理设备来执行任务的分布式计算环境中实现实施例。在分布式计算环境中,程序模块既可以位于本地存储器存储设备中,也可以位于远程存储器存储设备中。

可以将一些实施例实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是这样一种计算机存储介质,其能够由计算机系统读取并且对包括用于使得计算机或计算机系统执行示例过程的指令的计算机程序进行编码。所述计算机可读存储介质是计算机可读存储器设备。计算机可读存储介质可以例如是经由以下中的一个或多个来实现的:易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘、压缩盘、和类似的硬件介质。

在该说明书通篇中,术语“平台”可以是用于将本地删除的内容留存在存储服务处的软件和硬件组件的组合。平台的示例包括但不限于:在多个服务器上执行的托管的服务、在单个计算设备上执行的应用、以及类似的系统。术语“服务器”通常是指通常在网络化环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为在被视为网络上的服务器的一个或多个计算设备上执行的虚拟服务器(软件程序)。在下文中提供了关于这些技术和示例操作的更多的细节。

图1包括其中可以实现被配置为基于外部上下文来针对相关性将查询结果进行排名的系统的示例网络环境。

如在图100中所示,示例系统可以包括托管基于云的搜索服务114的数据中心112,基于云的搜索服务114被配置为搜索一个或多个数据库以便收集并提供与包含查询的指定词条或者与查询的指定词条相关的项目相关联的信息。数据中心112可以包括被配置为执行搜索服务114的一个或多个处理服务器116,此外还有其他组件。在一些实施例中,处理服务器116中的至少一个处理器服务器可操作以执行搜索服务114的排名确定模块118,其中,排名确定模块118可以与搜索服务114集成在一起以基于外部上下文针对相关性将查询结果进行排名,从而使得用户(例如,用户104)更加有效地针对其周围的文档进行搜索,而不需要用户知道并记住所述文档被存储的位置。在其他实施例中,该功能可以固有地存在于搜索服务114本身内。数据中心112还可以包括被配置为管理一个或多个数据存储的一个或多个存储服务器120,所述一个或多个数据存储包括与搜索服务114和/或排名确定模块118相关联的数据,例如查询结果以及用于将查询结果进行排名所计算的分数。如在本文中所描述的,搜索服务114和/或排名确定模块118可以被实现为软件、硬件、或其组合。

在一些实施例中,搜索服务114可以被配置为与各种应用互操作。例如,如在图100中所示出的,用户104可以通过设备102执行应用106的瘦(例如,网络浏览器)版本或胖(例如,本地安装的客户端应用)版本,搜索服务114可以被配置为通过诸如网络110之类的一个或多个网络与设备102集成或者与设备102互操作。例如,应用106可以是由搜索服务所托管的应用。设备102可以包括台式计算机、膝上型计算机、平板计算机、车载计算机、智能电话、或者可穿戴计算设备,此外还有其他类似设备。通信接口可以促进搜索服务114通过网络110与应用106的通信。

在示例实施例中,搜索服务114可以通过应用106接收查询和外部上下文列表。在一些示例中,可以接收多于一个外部上下文列表。应用106可以生成外部上下文列表,其中,上下文列表的条目可以包括用户104紧密合作的人、团队、小组、或者组织,用户104常去的站点,或者用户感兴趣的标签等。在一个实施例中,搜索服务114可以基于从一个或多个服务远程取回的信息来确定外部上下文列表中的每个条目的相关性值,所述一个或多个服务例如目录服务、协同服务、通信服务、和/或生产力服务背景框架。在另一实施例中,应用106可以通过从在设备102上执行的类似服务取回本地存储在本地存储108处的信息来确定所述相关性值,并且将所述相关性值与外部上下文列表一起提供至搜索服务114。所述相关性值可以是基于每个条目与用户104之间的联系的顺序、关系的接近度的。为了提供说明性示例,外部上下文列表可以包含人作为条目,例如用户104最常协作的人、与104在同一团队或小组的人、和/或与用户104从事同一项目、任务、或文档的人。搜索服务114可以从目录服务取回与每个人相关联的信息,并且所述相关性值可以是基于每个人与用户104之间的联系的顺序的。在一些实施例中,外部上下文列表的条目的相关性值可以响应于检测到条目与提供外部上下文列表的用户之间的联系的改变而被修改。例如,如果一组新的人开始比所述人更频繁地与关联于用户104的文档和/或站点进行交互,则所述人的相关性值可以被降低。额外地和/或可替代地,可以实现针对每个条目的相关性值的时间衰减。例如,如果一个人在特定地时间段内没有与关联于用户104的文档和/或站点进行交互,则该人的相关性值可以连续降低。

接着,搜索服务114可以执行查询,其中,搜索索引包括可以响应于查询的执行而被返回的项目。所述项目可以包含在查询中所指定的词条或者可以与在查询中所指定的词条相关,并且可以包括用户104已经创建或与之交互的项目、用户104访问的站点上的项目、用户104周围流行的项目、以及由与用户104相关联的其他用户所创建的项目。在一个实施例中,搜索服务114可以在搜索服务114的内部搜索引擎122处执行查询。在另一实施例中,搜索服务114可以将查询提供至外部搜索引擎124以供执行。外部搜索引擎124可以执行查询并且将搜索索引提供至搜索服务114。通过将项目的属性索引为关于搜索索引内的相应项目的元数据,搜索索引可以被填充以所述项目的属性。接着,排名确定模块118可以被配置为将外部上下文列表中的条目针对所述项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,基于针对所述项目所计算的分数来将查询的结果进行排名。继续同一说明性示例,排名确定模块118可以将外部上下文列表内的人针对相关联的项目属性(例如,作者、创建者、修改者之类的文档的属性)进行匹配。如果人与相关联的项目属性之间存在匹配,则排名确定模块118可以基于该人的相关性值以及相关联的项目属性的权重来计算分数。例如,外部上下文列表中的人中的一个人可以是johndoe,其具有3.2的相关性值。johndoe可以是搜索索引内的文档的作者,其中作者属性具有相关联的0.5的权重。排名确定模块118可以基于所述匹配来计算该文档的分数,其中,可以通过将johndoe的相关性值(3.2)乘以相关联的项目属性的权重(0.5)来计算该文档的分数,其得出1.6的分数。接着,该文档可以基于所述分数在查询内的其他项目之间被排名。

在一些示例中,搜索服务114可以被配置为验证经排名的结果。接着,搜索服务114可以被配置为提供经排名的结果以通过应用106的用户界面来显示。所述结果可以被显示以使得项目以及与外部上下文列表中的条目相匹配的那些项目的相关联的属性被显示(例如,在上文所提供的示例中是文档和文档的作者属性)。用户104可以被使能通过用户界面与经排名的结果进行交互。例如,用户104可以过滤经排名的结果以更容易地找到感兴趣的项目和/或导航至在经排名的结果内所显示的项目。在一些实施例中,仅在经排名的结果内提供具有超过特定阈值分数的经计算的分数的项目,以确保用户104被提供以最相关的项目。

传统上,用户可能仅被使能在具体的位置(例如,给定的文件夹或协同站点)中针对项目进行搜索,这需要用户知道并记住所述项目被存储的位置。然而,用户最有可能针对他们“周围”的项目进行搜索(即,不仅仅是他们自己已创建的项目),例如,由与用户紧密合作或协作的其他用户所创建的项目、与用户从事的工程/任务相关联的项目、和/或用户常去的站点上的项目。针对这样的项目,用户不太可能知道所述项目被存储的位置。因此,如在以上图1中所描述的实施例涉及基于外部上下文来针对相关性将查询结果进行排名,从而允许用户针对他们周围的相关项目更加快速和高效地进行搜索。除了改进可用性并且增加用户效率,利用外部上下文列表来针对相关性将查询结果进行排名以及对阈值分数的实现可以降低从搜索服务向客户端所提供的相关查询结果的量(数据的量),由此降低了处理器和存储器使用以及带宽使用(由于降低的设备至服务器通信)。此外,对经排名的结果所执行的验证可以增强可靠性。

如在本文中所描述的实施例解决了人类无法管理的来自于基于软件的服务所创建的大规模操作的需求。在本文中所描述的动作/操作不仅是对计算机的使用,而且还涉及被用作服务的软件的直接结果的系统的结果,所述服务是结合大量设备和用户在客户端设备本地并且在基于云的存储服务处远程地存储和/或共享内容而提供的。

图2示出了被配置为基于外部上下文来针对相关性将查询结果进行排名的系统的示例架构。如在图200中所示出的,搜索服务202可以被配置为与客户端210进行交互以基于外部上下文针对相关性将查询结果进行排名。搜索服务202可以从客户端210接收查询和外部上下文列表212。外部上下文列表可以由客户端210生成并且可以由包括人、团队、小组、组织、站点、或标签的条目组成。客户端210或搜索服务202之一可以基于条目与通过客户端210请求查询的用户之间的联系的顺序、或接近度来确定外部上下文列表中的每个条目的相关性值。如果客户端210确定了所述相关性值,则所述相关性值可以结合查询和外部上下文列表212而被提供至搜索服务202。接着,搜索服务202可以执行查询,其中,搜索索引208可以响应于查询的执行而被返回,搜索索引208包括包含在查询中指定的词条或者与在查询中指定的词条相关的项目。

搜索服务202还可以接收与所述项目相关联的输入信号(例如,总查看计数、最近活动、和点击流,即,在从查询结果对项目的选择中结束的搜索项目),其中,所述输入信号被存储在信号数据库204中。接收了针对其的输入信号的项目可以包括例如用户已经创建或与之交互的项目、用户访问的站点上的项目、用户周围流行的项目、以及由与用户相关联的其他用户创建的项目。应用性能测评器(ape)206可以被配置为基于所接收的输入信号来用项目的属性填充搜索索引208。ape206可以通过例如将项目的属性索引为关于搜索索引208内的相应项目的元数据来填充搜索索引208。ape206可以被配置为一天填充所述搜索索引至少一次。

在查询的执行之后,搜索服务202可以将外部上下文列表中的条目针对搜索索引208内的项目的相关联的属性进行匹配。搜索服务202可以基于所述匹配来计算所述项目的分数,并且基于针对所述项目所计算的分数来将查询的结果进行排名。例如,响应于确定项目的相关联的属性与外部上下文列表中的条目相匹配,可以将相关联的属性的预先分配的权重乘以针对外部上下文列表中的条目所确定的相关性值以计算该项目的分数。接着,搜索服务202可以将经排名的结果214提供至客户端210以供显示。在一些实施例中,在经排名的结果214内仅提供具有超过特定阈值分数的经计算的分数的项目。

在示例场景中,搜索服务202可以从客户端210接收查询和外部上下文列表,以及该外部上下文列表中的每个条目的相关性值。外部上下文列表可以包括作为来自客户端的条目的人,并且针对每个条目的相关性值可以是基于人与通过客户端210请求查询的用户之间的联系的顺序或接近度的。例如,人1可以与用户具有最近的关系,并且因此具有最高的相关性值3.2,此后是具有相关性值3.0的人2,具有2.7的相关性值的人3,以及具有2.4的相关性值的人4。接着,搜索服务202可以执行查询,其中,搜索索引208可以响应于查询的执行而被返回,搜索索引208包括包含在查询中指定的词条或者与在查询中指定的词条相关的项目。接着,搜索服务202可以将外部上下文列表中的条目针对搜索索引208内的项目的相关联的属性进行匹配,并且基于所述匹配来计算所述项目的分数。例如,搜索索引内的项目可以是包括诸如作者、创建者、修改者之类的属性的文档,其中,作者属性和创建者属性与人1相匹配,而修改者属性与人2相匹配。作者和创建者属性可以具有0.5的预先分配的权重,而修改者属性可以具有0.2的预先分配的权重。因此,文档的分数可以如下所述来计算:

分数=[人1的相关性值*(作者属性的权重+创建者属性的权重)]+(人2的相关性值*修改者属性的权重)=[3.2*(0.5+0.5)]+(2.7*0.2)=3.74

接着,文档可以基于该分数在其他项目之间被排名。

图3示出了用于基于外部上下文来针对相关性将查询结果进行排名的过程的全部三个阶段的示例架构。如在图300中所示出的,搜索服务304可以被配置为与客户端302进行交互以基于外部上下文来针对相关性将查询结果进行排名。用于基于外部上下文来针对相关性将查询结果进行排名的过程可以被分成三个阶段:查询执行前、查询执行、以及查询执行后,并且每个阶段可以实现如分别在配置300a、300b、和300c中所示出的不同架构。

客户端302可以将查询和一个或多个外部上下文列表提供至搜索服务304。外部上下文列表可以作为查询的一部分或者作为分别的列表而被提供。搜索服务304可以确定外部上下文列表中的每个条目的相关性值,其中,所述条目可以包括人、小组、团队、组织、站点、或标签。如在配置300a中所示出的,搜索服务304可以从一个或多个服务(例如,生产力服务背景框架306和目录服务308)取回与所述条目相关联的信息以确定每个条目的相关性值,其中,所述相关性值可以是基于每个条目与同客户端302相关联的用户之间的联系的顺序、关系的接近度的。例如,搜索服务304可以从目录服务308取回与同用户交互的人相关联的信息和/或与同关于该用户的站点或项目交互的人相关联的信息。搜索服务304也可以从生产力服务背景框架306取回与用户周围流行的项目、用户已经修改或查看的项目、用户常去的站点、和/或流行的站点相关联的信息。

接着,搜索服务304可以执行查询,其中,所述查询索引可以响应于查询的执行而被返回。搜索索引可以包括包含在查询中指定的词条或者与在查询中指定的词条相关的项目。查询可以在搜索服务304的搜索引擎310处被执行,或者可以被提供至外部搜索引擎312以供执行,如在配置300b中所示出的。可以由在搜索服务304中执行的应用性能测评器(ape)通过将项目的属性索引为关于搜索索引内的相应项目的元数据来用所述项目的属性填充搜索索引。

如在配置300c中所示出的,在查询被执行之后,搜索服务304的排名确定模块314可以被配置为将外部上下文列表中的条目针对所述搜索索引内的项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,基于针对所述项目所计算的分数来将查询的结果进行排名。在一些示例中,搜索服务304可以被配置为验证经排名的结果。排名结果可以通过以下中的一个或多个来验证:从ape的高速缓存的文件中提取与条目和/或项目属性相关联的基于相关性的数据,查询生产力服务背景框架以取回基于相关性的数据,和/或调用目录服务的应用编程接口(api)以取回基于相关性的数据。接着,搜索服务304可以将经排名的结果提供至客户端302以供显示。可以显示所述结果以使得与所述外部列表的条目相匹配的项目的分数和相关联的属性得以显示。

图4包括用于对外部上下文列表进行显示的示例用户体验配置。与用户相关联的计算设备可以被配置为执行与搜索服务相关联的应用(或客户端),其中,所述计算设备可以包括用于促进搜索服务与计算设备之间的通信的通信接口、用于存储指令的存储器、以及耦合至该存储器的一个或多个处理器。结合存储在所述存储器上的指令,所述处理器可以被配置为生成外部上下文列表以使能基于外部上下文对查询结果进行相关性排名。

如在图400中所示,用户可以通过应用的用户体验402来提供查询的词条。例如,用户体验402可以包括搜索工具栏404,其使得用户能够使用计算设备的一个或多个输入设备来提供查询的词条。所述输入设备可以支持例如以下中的一个或多个:键盘输入、鼠标输入、笔输入、触摸、光学捕获的手势、语音输入、陀螺仪输入、和/或眼睛跟踪输入。如图所示,用户可以通过用户体验402将查询词条“工程a”输入到搜索工具栏404中,以针对与“工程a”相关联的项目进行搜索。用户还可以通过搜索工具栏404来定义查询,以使得结果包括与该用户直接相关的项目、与该用户紧密相关的项目、和/或包含查询“工程a”的项目或者与之相关的任何项目。如由对搜索工具栏404中的“全部”的选择所示出的,可以通过搜索工具栏404来定义查询,以使得结果包括包含查询“工程a”的项目或者与之相关的任何项目。

响应于用户对查询词条的输入,包括一个或多个条目410、412、414的外部上下文列表406可以通过用户体验402被显示。例如,外部上下文列表406中的条目410、412、414可以是与所提供的查询词条“工程a”相关联的人408。如图所示,外部上下文列表406可以以从左到右的方向被水平地显示。可替代地,外部上下文列表406可以以从上到下的方法被竖直地显示。在一些实施例中,条目410、412、414被显示的顺序可以是基于每个条目与请求查询的用户之间的联系的顺序或者关系的接近度的。例如,如果先前已经由应用确定了每个条目的相关性值,则条目410、412、和414可以基于所述相关性值而被显示。为了适应计算设备的显示器尺寸,用户体验402可以被配置为仅显示外部上下文列表406的一部分,并且提供控制命令(例如,命令420)或者滚动功能,例如以使得用户能够访问外部上下文列表406的其余部分。

外部上下文列表406的每个条目可以包括图标416,其表示条目(例如,该人的照片)以及与该条目相关联的信息418,包括外部上下文列表406中的条目与查询词条之间的关系。例如,条目412与查询词条“工程a”之间的关系是由条目412所表示的人在以某种方式与工程a相关联的小组中。信息418还可以包括与条目相关联的其他信息。例如,如图所示,当条目是人408时,额外的信息可以包括每个人的职位名称、技能、和/或位置。在一些实施例中,外部上下文列表406的条目与查询词条之间的关系可以被突出显示。在一些实施例中,可以使得用户能够通过用户体验402修改外部上下文列表406和/或将额外的条目添加至外部上下文列表406。

接着,计算设备可以将查询和外部上下文列表406提供至搜索服务。在一些实施例中,外部上下文列表406作为查询的集成部分被提供至搜索服务。在其他实施例中,外部上下文列表406可以与查询分开地被提供至搜索服务。在接收之后,搜索服务可以确定外部上下文列表中的每个条目的相关性值(如果这没有被应用完成),并且执行查询,其中搜索索引包括可以响应于查询的执行而被返回的项目。接着,搜索服务可以将外部上下文列表中的条目针对所述项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,并且基于针对所述项目所计算的分数来将查询结果进行排名。接着,搜索服务可以将经排名的结果提供至计算设备以通过用户体验402来显示。

在可替代的实施例中,查询可以在没有外部列表的情况下被提供至搜索服务。因此,搜索服务可以执行查询并且将结果提供至计算设备,其中,所述结果仅仅是基于响应于查询的执行而被返回的搜索索引的项目的。接着,应用可以被配置为应用外部上下文列表以在本地将结果进行排名。例如,应用可以被配置为通过取回在与外部上下文列表中的每个条目相关联的计算设备上本地存储的信息来确定外部上下文列表中的每个条目的相关性值。接着,应用可以将外部上下文列表中的条目针对所述结果内的项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,并且基于针对所述项目所计算的分数来将查询结果进行排名。

图5a-b包括用于与查询进行交互以使得可以基于外部上下文来针对相关性将查询结果进行排名的示例用户体验配置。如先前结合图4所讨论的,与用户相关联的计算设备可以被配置为执行与搜索服务相关联的应用,其中,所述计算设备可以包括用于促进搜索服务与计算设备之间的通信的通信接口、用于存储指令的存储器、以及耦合至该存储器的一个或多个处理器。结合存储在所述存储器上的指令,所述处理器可以被配置为生成外部上下文列表以使能基于外部上下文对查询结果进行相关性排名。

如在图5a的图500a中所示出的,用户可以通过应用的用户体验502来提供查询的词条。例如,用户体验502可以包括搜索工具栏504,其使得用户能够使用计算设备的一个或多个输入设备来提供查询的词条。所述输入设备可以支持例如以下中的一个或多个:键盘输入、鼠标输入、笔输入、触摸、光学捕获的手势、语音输入、陀螺仪输入、和/或眼睛跟踪输入。如图所示,用户可以开始通过用户体验502将查询词条“ux”输入到搜索工具栏504中。作为响应,可以显示额外的搜索菜单506。搜索菜单506可以是下拉菜单、弹出菜单、飞出菜单、和/或分别的显示窗口等。搜索菜单可以包括由用户请求的包括词条“ux”的最新近的查询词条508。搜索菜单506还可以包括用于基于不同上下文来进行搜索的选项,例如,与词条“ux”相关联的人510、包括词条“ux”的文档512、以及包括词条“ux”的话题标签514等。搜索菜单506可以额外地提供用于搜索与词条“ux”相关联的全部516(即,人、项目、文档、和话题标签等)的选项。用户可以首先选择518在搜索菜单506中所呈现的选项(例如,用户2周围关于ux的文档),其在由用户所请求的包括词条“ux”的最新近的查询词条508下。除了查询词条“ux”,所选择的选项还定义文档和人(具体为用户2)的上下文。接着,用户可以选择下一步命令520,其可以在用户体验502中以图形和/或文本表示。

作为响应,用户体验502可以被配置为显示高级搜索工具栏550,其使得用户能够进一步显示要由查询提供的结果,如在图5b的图500b中所示。高级搜索工具栏550可以显示针对查询552选择的当前上下文和词条,包括“用户2”和“ux”和“文档”。高级搜索工具栏550还可以提供额外的选项554,其可以使得用户能够基于相关性、日期、和/或流行度来显示查询的结果。在一些实施例中,响应于对基于文档的上下文的用户选择,可以通过用户体验502来提供额外的菜单556以使得用户能够选择在用户2周围且关于ux的特定类型的文档以在查询的结果中被返回。例如,用户可以选择仅让在用户2周围且关于ux的演示或文字处理文档被返回。可替代地,用户可以选择558让在用户2周围且关于ux的所有文档被返回,如图所示。一旦用户已经利用高级搜索工具栏进行了进一步的选择和/或如果用户不需要对查询上下文和/或词条进行任何进一步改变,则用户可以选择返回命令560,其可以在用户体验502中以图形和/或文本表示。

接着,计算设备可以被配置为将查询以及一个或多个外部上下文列表提供至搜索服务,一个外部上下文列表可以包括作为条目的人,其中,所述人与用户2相关联。另一外部上下文列表可以包括作为条目的站点,其中,所述站点是用户2或与用户2相关联的人常去的。在一些实施例中,外部上下文列表可以作为查询的集成部分被提供至搜索服务。在其他实施例中,外部上下文列表可以与查询分开被提供至搜索服务。在接收之后,搜索服务可以确定外部上下文列表中的每个条目的相关性值(如在图3中详细描述的),并且执行查询,其中,搜索索引包括可以响应于查询的执行而被返回的项目。所述项目可以包括用户2周围关于ux的文档,例如由用户2创建或修改的ux文档、用户2周围流行的ux文档、与用户2相关联的同伴或协作者的ux文档、或者用户2从事的站点。接着,搜索服务可以将外部上下文列表中的条目针对所述项目的相关联的属性进行匹配,基于所述匹配来计算所述项目的分数,基于针对所述项目所计算的分数来将查询的结果进行排名。接着,搜索服务可以将经排名的结果提供至计算设备以通过用户体验502来显示。

在一些实施例中,经排名的结果可以通过用户体验502被显示为块,其中用户可以选择所述块以导航至所述项目。在一个示例中,所述块可以是固定大小和固定顺序的。在另一示例中,所述块可以具有可变大小以及固定或可变的顺序,其中所述块的大小和/或顺序可以取决于查询结果的数量。可替代地,经排名的结果可以通过用户体验502而被显示为容器,在每个容器内具有可选择的结果项目。

利用具体的组件、数据类型、和配置示出了在图1至图5a-b中所提供的示例。实施例不限于根据这些示例性配置的环境。基于外部上下文对查询结果的相关性排名可以在采用较少或额外的系统、架构、服务、应用、模块和用户体验的环境中实现。此外,在图1至5a-b中所示出的示例系统、架构、服务、应用、模块、和用户体验可以使用在本文中所描述的原理利用其他数值以相似方式来实现。

图6是其中可以实现根据实施例的系统的联网环境。如示图600中所示出的,除了本地安装的应用(例如,应用106或同步客户端206)之外,留存模块(例如,留存模块118或216)也可以结合托管应用和服务(例如,存储服务114)而被采用,所述托管应用和服务可以经由在一个或多个服务器606或个体服务器608上执行的软件来实现。托管服务或应用可以通过(多个)网络610与诸如手持计算机601、台式计算机602、膝上型计算机603、智能电话604、平板计算机(或板式)605(客户端设备)之类的个体计算设备进行通信并且控制呈现给用户的用户界面。

客户端设备601-605被用来访问由托管的服务或应用所提供的功能。服务器606或服务器608中的一个或多个可以被用来提供如上文所讨论的各种服务。相关数据可以被存储在一个或多个数据存储(例如,数据存储614)中,所述数据存储可以由服务器606中的任何一个或者由数据库服务器612来管理。

网络610可以包括服务器、客户端、互联网服务提供商、和通信介质的任何拓扑。根据实施例的系统可以具有静态或动态拓扑。网络610可以包括诸如企业网络之类的安全网络,诸如无线开放网络、或互联网之类的非安全网络。网络610还可以协调通过其他网络(例如,公共交换电话网络(pstn)或蜂窝网络)的通信。此外,网络610可以包括短距离无线网络,例如蓝牙和类似网络。网络610提供在本文中所描述的节点之间的通信。作为示例而非限制,网络610可以包括无线介质,例如声音介质、rf介质、红外介质、和其他无线介质。

可以采用计算设备、应用、引擎、数据源、和数据分配系统的许多其他配置来将本地删除的内容留存在存储服务处。此外,在图6中所讨论的联网环境仅是出于说明的目的。实施例不限于示例应用、引擎、和过程。

图7是示例通用计算设备的框图,其可以用于将本地删除的内容留存在存储服务处。

例如,计算设备700可以用作服务器、台式计算机、便携式计算机、智能电话、专用计算机、或类似设备。在示例基本配置702中,计算设备700可以包括处理器704和系统存储器706。存储器总线708可用于在处理器704与系统存储器706之间进行通信。可以在图7中由内部虚线内的那些组件示出了基本配置702。

根据期望的配置,处理器704可以具有任何类型,包括但不限于:微处理器(μp)、微控制器(μc)、数字信号处理器(dsp)、或其任何组合。处理器704可以包括一个以上层级的高速缓存,例如层级高速缓存存储器712、一个或多个处理器核心714、和寄存器716。示例处理器核心714可以(每个)包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理核心(dsp核心)、或其任何组合。示例存储器控制器718还可以与处理器704一起使用,或者在一些实现中,示例存储器控制器718可以是处理器704的内部部件。

根据期望配置,系统存储器706可以具有任何类型,包括但不限于易失性存储器(例如ram)、非易失性存储器(例如rom、闪速存储器等)、或其任何组合。系统存储器706可以包括操作系统720、文档处理应用722、以及程序数据724。协同数据库服务722可以包括留存模块726,其可以是存储服务722的集成模块。存储服务722和/或留存模块726可以被配置为在存储服务722处接收在设备中本地存储的内容、检测对设备上的内容的删除、以及将该内容留存在存储服务处。程序数据724可以包括进程数据728等,例如在本文中所描述的在存储服务722处留存的内容。

计算设备700可以具有额外的特征或功能,以及用于促进基本配置702与任何期望的设备和接口之间的通信的额外的接口。例如,总线/接口控制器730可以用于促进基本配置702经由存储接口总线734与一个或多个数据存储设备732之间的通信。数据存储设备732可以是一个或多个可移动存储设备736、不可移动存储设备738、或其组合。可移动存储设备和不可移动存储设备的示例可以包括:磁盘设备(例如,软盘驱动器和硬盘驱动器(hdd))、光盘驱动器(例如,压缩盘(cd)驱动器或数字通用盘(dvd)驱动器)、固态驱动器(ssd)、以及磁带驱动器等。示例计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。

系统存储器706、可移动存储设备736、和不可移动存储设备738可以是计算机存储介质的示例。计算机存储介质可以包括但不限于:ram、rom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)、固态驱动器、或其他光存储、盒式磁带、磁带、磁盘存储设备或其他磁存储设备、或者可用于存储期望的信息并且可以由计算设备700来访问的任何其他介质。任何这样的计算机存储介质可以是计算设备700的一部分。

计算设备700还可以包括用于促进经由总线/接口控制器730从各种接口设备(例如,一个或多个输出设备742、一个或多个外围接口744、以及一个或多个通信设备746)到基本配置702的通信的接口总线740。输出设备742中的一些输出设备可以包括图形处理单元748和音频处理单元750,它们可以被配置为经由一个或多个a/v端口752而与诸如显示器或扬声器之类的各种外部设备进行通信。一个或多个示例外围接口744可以包括串行接口控制器754或并行接口控制器756,它们可以被配置为经由一个或多个i/o端口758来与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)之类的外围设备进行通信。一个或多个通信设备746可以包括网络控制器760,其可以被布置为促进经由一个或多个通信端口764在网络通信链路上与一个或多个其他计算设备762的通信。一个或多个其他计算设备762可以包括服务器、计算设备、和类似设备。

网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块、或经调制的数据信号(例如载波或其他传输机制)中的其他数据来实施,并且可以包括任何信息传递介质。“经调制的数据信号”可以是具有经调制的数据信号的特征集合中的一个或多个特征的信号,或者以关于将信息在信号中进行编码的方式而改变。作为示例而非限制,通信介质可以包括有线介质(例如,有线网络或直接有线连接)和无线介质(例如,声学、射频(rf)、微波、红外(ir)和其他无线介质)。如在本文中所使用的术语计算机可读介质可以包括存储介质和通信介质两者。

可以将计算设备700实现为包括以上功能中的任何一种功能的通用或专用服务器、大型计算机、或类似的计算机的一部分。还可以将计算设备700实现为个人计算机,其包括膝上型计算机和非膝上型计算机配置两者。

示例实施例还可以包括用于将被本地删除的内容留存在存储服务处的方法。这些方法可以以包括在本文中所描述的结构在内的任何数量的方式来实现。一种这样的方式可以是通过在本公开中所描述类型的设备的机器操作。另一种可选的方式可以是针对结合执行一些操作的一个或多个人类操作者而将被执行的方法的独立操作中的一个或多个操作。这些人类操作者无需彼此处于同一位置,但每个操作者可以与执行程序的一部分的机器在一起。在其他示例中,人类交互可以例如通过可以是机器自动化的预先选择的标准而是自动化的。

图8示出了用于基于外部上下文来针对相关性将查询结果进行排名的方法的逻辑流程图。

过程800可以在计算设备、服务器或其他系统上实现。一种示例系统可以包括服务器,该服务器被配置为执行搜索服务,该搜索服务被提供以使得用户能够有效地经由查询针对项目进行搜索。所述服务器可以包括用于促进搜索服务与关联于该搜索服务的应用在其上执行的设备之间的通信的通信接口、用于存储指令的存储器、以及耦合至该存储器的一个或多个处理器。结合存储在所述存储器上的指令,所述处理器可以被配置为基于外部上下文来针对相关性将查询结果进行排名。

过程800以操作810开始,其中,搜索服务可以从设备接收查询和外部上下文列表。所述上下文列表可以由包括人、团队、小组、组织、站点、或标签的条目组成。在操作820处,搜索服务可以确定外部上下文列表中的每个条目的相关性值。所述相关性值可以是基于每个条目与提供外部上下文列表的用户之间的联系的顺序、关系的接近度的。所述相关性值可以是基于从目录服务、协同服务、通信服务、和/或生产力服务背景框架取回的信息来确定的。在一些实施例中,可以响应于检测到条目与用户之间的联系的改变来修改外部上下文列表中的条目的相关性值。额外地和/或可替代地,可以实现针对每个条目的相关性值的时间衰减。

在操作830处,搜索服务可以执行所述查询,其中,搜索索引包括响应于对所述查询的执行而被返回的项目。搜索服务可以在搜索服务的内部搜索引擎处执行所述查询。可替代地,搜索服务可以将所述查询提供至外部搜索引擎以供执行。接着,外部搜索引擎可以执行所述查询,并且将包括所述项目的搜索索引提供至搜索服务。所述项目包含在查询中所指定的词条或者可以与在查询中所指定的词条相关,并且可以包括请求该查询的用户已经创建或与之交互的项目、用户访问的站点上的项目、用户周围流行的项目、和/或由与用户相关联的其他用户所创建的项目。可以通过将所述项目的属性索引为关于所述搜索索引内的相应项目的元数据来用所述项目的所述属性填充所述搜索索引。

在操作840处,搜索服务可以将所述外部上下文列表中的条目针对所述项目的相关联的属性进行匹配。在操作850处,搜索服务可以基于所述匹配来计算所述项目的分数。例如,项目的分数可以是基于与所述项目的相关联的属性相匹配的条目的相关性值以及该相关联的项目属性的预先分配的权重的。在操作860处,搜索服务可以基于针对所述项目所计算的所述分数来将所述查询的结果进行排名,接着经排名的结果可以被提供至所述设备以供显示。在一些实施例中,仅在经排名的结果内提供具有超过特定阈值分数的经计算的分数的项目,以确保该用户被提供以真正相关的项目。

在过程800中所包括的操作是出于说明的目的的。对被本地删除的内容的留存可以通过具有更少或额外步骤的类似处理来实现,以及以使用在本文中所描述的原理的操作的不同顺序来实现。在本文中所描述的操作可以由在一个或多个计算设备上操作的一个或多个处理器、一个或多个处理器核心、专用处理设备、和/或通用处理器等来执行。

图9示出了根据实施例的用于基于外部上下文来针对相关性将查询结果进行排名的方法的逻辑流程图。

过程900可以在计算设备、服务器或其他系统上实现。一种示例系统可以包括服务器,该服务器被配置为执行所提供的搜索服务以使得用户能够有效地经由查询针对项目进行搜索。所述服务器可以包括用于促进搜索服务与关联于该搜索服务的应用在其上执行的设备之间的通信的通信接口、用于存储指令的存储器、以及耦合至该存储器的一个或多个处理器。结合存储在所述存储器上的指令,所述处理器可以被配置为基于外部上下文来针对相关性将查询结果进行排名。

过程900以操作910开始,其中,处理器可以生成包括条目的外部上下文列表。在一些示例中,处理器可以生成多于一个外部上下文列表。所述条目可以包括人、团队、小组、组织、站点、或标签。在操作920处,处理器可以从在计算设备上执行的一个或多个服务中取回信息以确定每个条目的相关性值。所述相关性值可以是基于条目与关联于计算设备的用户之间的联系的顺序、关系的接近度的。

在操作930处,处理器可以将查询以及所述一个或多个外部上下文列表导出至搜索服务。外部上下文列表可以作为查询的一部分或者作为分开的组件被导出至搜索服务。在操作940处,可以从所述搜索服务接收所述查询的结果。所述结果是按分数来排名的,所述分数是基于所述一个或多个外部上下文列表中的条目针对响应于所述查询的执行而被返回的搜索索引的项目的相关联的属性的匹配而计算出的。在操作950处,可以显示所述查询的所述经排名的结果,以使得项目以及与外部上下文列表的所述条目相匹配的所述项目的所述相关联的属性被显示。

在过程900中所包括的操作是出于说明的目的的。对被本地删除的内容的留存可以通过具有更少或额外步骤的类似处理来实现,以及以使用在本文中所描述的原理的操作的不同顺序来实现。在本文中所描述的操作可以由在一个或多个计算设备上操作的一个或多个处理器、一个或多个处理器核心、专用处理设备、和/或通用处理器等来执行。

根据一些实施例,可以提供一种用于基于外部上下文来针对相关性将查询结果进行排名的装置。示例装置包括:在搜索服务处接收查询以及外部上下文列表;确定所述外部上下文列表中的每个条目的相关性值;执行所述查询,其中,搜索索引包括响应于对所述查询的执行而被返回的项目。示例装置还可以包括:将所述外部上下文列表中的条目针对所述项目的相关联的属性进行匹配;基于所述匹配来计算所述项目的分数;以及基于针对所述项目所计算的所述分数来将所述查询的结果进行排名。

一种用于基于外部上下文来针对相关性将查询结果进行排名的方法。示例方法可以包括:在搜索服务处接收查询以及外部上下文列表;确定所述外部上下文列表中的每个条目的相关性值;执行所述查询,其中,搜索索引包括响应于对所述查询的执行而被返回的项目。示例方法还可以包括:将所述外部上下文列表中的条目针对所述项目的相关联的属性进行匹配;基于所述匹配来计算所述项目的分数;以及基于针对所述项目所计算的所述分数来将所述查询的结果进行排名。

在其他示例中,可以基于每个条目与请求所述查询的用户之间的联系的顺序来确定所述每个条目的相关性值。外部上下文列表中的每个条目的相关性值可以响应于检测到所述条目与所述用户之间的联系的改变而被修改。可以实现针对每个条目的相关性值的时间衰减。外部上下文列表中的条目可以包括人、团队、小组、组织、站点、和标签中的一个。可以通过将所述项目的属性索引为关于所述搜索索引内的相应项目的元数据来用所述项目的所述属性填充所述搜索索引。

在另外的示例中,可以将所述查询的经排名的结果提供至客户端设备以用于通过用户界面来显示,并且使得请求所述查询的用户能够通过所述客户端设备的所述用户界面来与所述查询的所述经排名的结果进行交互。响应于确定项目的相关联的属性与外部上下文列表中的条目相匹配,可以将相关联的属性的预先分配的权重乘以针对外部上下文列表中的条目所确定的相关性值以计算该项目的分数。可以从目录服务、协同服务、通信服务、以及生产力服务背景框架中的一个或多个中取回与每个条目相关联的信息,以确定所述相关性值。可以在所述搜索服务的搜索引擎处执行所述查询。可以将所述查询提供至外部搜索引擎以被执行,以及从所述外部搜索引擎接收所述搜索索引。

根据一些实施例,描述了被配置为基于外部上下文来针对相关性将查询结果进行排名的服务器。示例服务器可以包括:通信接口,其被配置为促进所述搜索服务与执行关联于所述搜索服务的应用的设备之间的通信;存储器,其被配置为存储指令;以及耦合至所述存储器的一个或多个处理器。所述处理器结合在所述存储器中存储的所述指令而被配置为:在所述搜索服务处从所述设备接收查询以及外部上下文列表;确定所述外部上下文列表中的每个条目的相关性值;执行所述查询,其中,搜索索引包括响应于对所述查询的执行而被返回的项目。所述处理器还可以被配置为:将所述外部上下文列表中的条目针对所述项目的相关联的属性进行匹配;基于所述匹配来计算所述项目的分数;基于针对所述项目所计算的所述分数来将所述查询的结果进行排名;以及将所述经排名的结果提供至所述设备以被显示。

在一些实施例中,项目以及与所述外部上下文列表的所述条目相匹配的所述项目的相关联的属性被显示在所述经排名的结果内。所述外部上下文列表可以是所述查询的集成部分。所述项目可以包括请求所述查询的用户已经创建或与之交互的项目、用户访问的站点上的项目、用户周围流行的项目、和/或由与用户相关联的其他用户所创建的项目。可以定义所述查询以使得结果包括以下中的一个或多个:与请求所述查询的用户直接相关的项目、与所述用户紧密相关的项目、以及任何项目。

根据一些实施例,提供了用于基于外部上下文来针对相关性将查询结果进行排名的方法。示例方法可以包括:生成一个或多个外部上下文列表,其中,所述一个或多个外部上下文列表中的条目包括人、团队、小组、组织、站点、和标签中的一个;确定所述一个或多个外部上下文列表中的每个条目的相关性值;将查询以及所述一个或多个外部上下文列表导出至搜索服务。示例方法还可以包括:从所述搜索服务接收所述查询的结果,其中,所述结果是按分数来排名的,所述分数是基于所述一个或多个外部上下文列表中的条目针对响应于所述查询的执行而被返回的搜索索引的项目的相关联的属性的匹配而计算出的;以及显示所述查询的所述经排名的结果,以使得项目以及所述项目的所述相关联的属性以其相应的分数的顺序被显示,所述项目的所述相关联的属性与所述一个或多个外部上下文列表中的所述条目相匹配。

在其他示例中,可以使得用户能够与所显示的经排名的结果进行交互,其中,所述交互包括过滤所述经排名的结果以及选择所述结果内的项目。可以使得外部上下文列表能够在被导出至搜索服务之前被用户修改。

以上的说明书、示例、和数据提供对实施例的组成的制造和使用的完整描述。尽管已经用特定于结构特性和/或方法动作的语言描述了本主题,但应当理解的是,在所附权利要求中定义的主题不一定限于在上文中所描述的具体特征或动作。相反,在上文中所描述的具体特性和动作是作为实现权利要求和实施例的示例形式而公开的。

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