用于生成搜索查询的用户接口的制作方法

文档序号:12512968阅读:300来源:国知局
用于生成搜索查询的用户接口的制作方法与工艺

本申请要求2014年8月29日提交的美国临时申请第62/044,167号和2014年12月23日提交的美国专利申请第14/582,103号的优先权益,通过引用将它们并入本文。

技术领域

本申请一般涉及数据处理系统,并且在一个具体示例中涉及经由用户接口生成搜索查询的技术。



背景技术:

比如Linkedln®的在线社交网络服务正变得越来越流行,许多这样的web站点拥有数百万活跃成员。在线社交网络服务的每位成员都能够将可编辑的成员简档页面上传到在线社交网络服务。成员简档页面可以包括关于成员的各种信息,比如成员的履历信息、成员的照片、以及描述成员的就业历史、教育历史、技能、经验、活动等的信息。例如在线社交网络服务的其他成员可查看联网web站点的此类成员简档页面。此外,Linkedln®在线社交网络服务提供了一种搜索特征,其允许用户(例如招聘者)指定搜索查询项(例如学校、技能、公司等),以便搜索在线社交网络服务的具有匹配于搜索查询项的属性的成员。

附图说明

在附图的图中通过示例而非限制的方式示出了一些实施例,在附图中:

图1是示出与本发明的一些实施例相一致的社交联网服务的功能部件的框图;

图2是根据各种实施例的示例系统的框图;

图3示出了根据各种实施例的用户接口的示例部分;

图4示出了根据各种实施例的用户接口的示例部分;

图5示出了根据各种实施例的用户接口的示例部分;

图6示出了根据各种实施例的用户接口的示例部分;

图7是示出了根据各种实施例的示例方法的流程图;

图8是示出了根据各种实施例的示例方法的流程图;

图9是示出了根据各种实施例的示例方法的流程图;

图10是示出了根据各种实施例的示例方法的流程图;

图11是示出了根据各种实施例的示例方法的流程图;

图12示出了根据各种实施例的示例移动设备;和

图13是计算机系统的示例形式的机器的图示,在该机器内可以执行用于使机器执行本文所讨论的方法中的任何一个或多个方法的指令集合。

具体实施方式

描述了用于经由用户接口生成搜索查询的示例方法和系统。在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对示例实施例的透彻理解。然而,对于本领域技术人员清楚的是,可以在没有这些具体细节的情况下实践本发明。

图1是示出了与一些实施例相一致的诸如社交网络系统20之类的社交网络服务的各种部件或功能模块的框图。如图1中所示,前端由用户接口模块(例如,web服务器)22组成,其接收来自各种客户端-计算设备的请求,并且向请求客户端设备传送适当的响应。例如,(一个或多个)用户接口模块22可以接收超文本传输​​协议(HTTP)请求或其他基于web的应用编程接口(API)请求的形式的请求。应用逻辑层包括各种应用服务器模块14,其与(一个或多个)用户接口模块22结合,用从数据层中的各种数据源取回的数据生成各种用户接口(例如web页面)。对于一些实施例,个体应用服务器模块24用于实现与社交网络服务的各种服务和特征相关联的功能。例如,组织在社交网络服务的社交图中建立存在(presence)的能力,包括代表组织建立定制web页面的能力以及代表组织发布消息或状态更新的能力,可以是在独立应用服务器模块24中实现的服务。类似地,使得对社交网络服务的成员可用的各种其他应用或服务将体现在他们自己的应用服务器模块24中。

如图1中所示,数据层包括若干数据库,比如用于存储简档数据的数据库28,所述简档数据包括成员简档数据以及各种组织的简档数据。与一些实施例相一致,当人最初注册成为社交网络服务的成员时,将提示该人提供一些个人信息,比如他或她的姓名、年龄(例如出生日期)、性别、兴趣、联系信息、家乡、地址、成员配偶和/或家庭成员的姓名、教育背景(例如,学校、专业、入学(matriculation)和/或毕业日期等)、就业历史、技能、专业组织等。该信息例如存储在具有参考编号28的数据库中。类似地,当组织的代表最初向社交网络服务注册该组织时,可以提示该代表提供关于该组织的某些信息。该信息例如可以存储在具有参考编号28的数据库中或另一数据库(未示出)中。对于一些实施例,可以(例如,在后台中或离线)处理简档数据以生成各种导出的简档数据。例如,如果成员已经提供了关于成员对于相同公司或不同公司所持有的各种职称以及多久的信息,那么可以使用该信息来推断或导出指示该成员总体资历级别或在特定公司内的资历级别的成员简档属性。对于一些实施例,从一个或多个外部托管的数据源导入或以其他方式访问来自一个或多个外部托管的数据源的数据可以增强成员和组织两者的简档数据。例如,尤其是对于公司,可以从一个或多个外部数据源导入财务数据,并使其作为公司简档的一部分。

一旦注册,成员可以邀请其他成员或被其他成员邀请,以经由该社交网络服务进行连接。“连接”可能需要成员双方同意,使得两个成员都确认建立连接。类似地,对于一些实施例,成员可以选择“关注(follow)”另一成员。与建立连接相对照而言,“关注”另一个成员的概念通常是单方的操作,并且至少对于一些实施例,不需要被关注成员的确认或批准。当一名成员关注另一名成员时,正在进行关注的成员可能收到由被关注成员所发布的、或者与被关注成员所进行的各种活动有关的状态更新或其他消息。类似地,当成员关注组织时,成员有资格接收代表该组织所发布的消息或状态更新。例如,代表成员所关注的组织所发布的消息或状态更新将显现在该成员的个性化数据源(feed)或内容流中。在任何情况下,在社交图中存储和维护成员与其他成员、或与其他实体和对象所建立的各种关联和关系,图1中参考编号30所示的那样。

社交网络服务可以提供允许成员有机会共享和接收信息的广泛范围的其他应用和服务,其通常根据成员的兴趣进行定制。例如,对于一些实施例,社交网络服务可以包括允许成员上传照片和与其他成员共享照片的照片共享应用。对于一些实施例,成员可能能够自组织成围绕感兴趣的主题或话题组织成的组或兴趣组。对于一些实施例,社交网络服务可以托管提供各种组织的工作空缺的细节的各种工作列表。

随着成员与使得经由社交网络服务可用的各种应用、服务和内容进行交互,可以监视成员的行为(例如,所查看的内容、所选择的链接或成员感兴趣按钮等)以及可以存储涉及成员活动和行为的信息,例如如图1中由具有参考编号32的数据库所指示的。

对于一些实施例,社交网络系统20包括这里一般称为搜索查询生成系统200的事物。下面结合图2更详细地描述搜索查询生成系统200。

虽然未示出,但是对于一些实施例,社交网络系统20提供应用编程接口(API)模块,第三方应用可以经由该应用编程接口(API)模块访问由社交网络服务所提供的各种服务和数据。例如,使用API,第三方应用可以提供用户接口和逻辑,所述用户接口和逻辑使得组织的授权代表能够将来自第三方应用的消息发布到社交网络服务的内容托管平台,所述内容托管平台促进由社交网络服务维护和呈现的活动或内容流的呈现。这样的第三方应用可能是基于浏览器的应用,或者可以是操作系统特定的。特别而言,一些第三方应用可以驻留在具有移动操作系统的一个或多个移动设备(例如,电话或平板计算设备)上并在其上执行。

现在转到图2,搜索查询生成系统200包括用户接口模块202、查询生成模块204和数据库206。搜索查询生成系统200的模块可以在诸如搜索查询生成设备之类的单个设备上实现或者由其执行、或者在经由网络互连的分开的设备上实现。前述搜索查询生成设备可以是例如一个或多个客户端机器或应用服务器。现在将结合附图更详细地描述搜索查询生成系统200的每一个前述模块的操作。

根据本文所描述的各种示例实施例,搜索查询生成系统200被配置为使得用户能够经由用户友好的接口以容易、搞笑、有趣和直观的方式生成搜索查询。例如,为了进行搜索,用户常规来说必须将一系列搜索查询项和布尔逻辑运算符(例如,AND(与)、OR(或)、NOT(非)等)输入到搜索引擎的搜索栏中。这会变得麻烦,特别是对于涉及大量项和/或大量布尔逻辑运算符的搜索查询来说。此外,每次用户访问搜索引擎并进行搜索时,用户可能被迫重新输入搜索查询。

因此,如本文所述,搜索查询生成系统200被配置为显示每个与用户可能希望使用的可能搜索查询项相关联的许多图标。例如,每个图标可以对应于频繁使用的搜索查询项,比如单个词语或属性值对。例如,搜索查询生成系统200可以显示图3中所示的包括第一窗口301和第二窗口302的用户接口300。第一窗口301包括对应于诸如“MIT”(麻省理工学院)和“Harvard”等等之类的频繁使用的搜索查询项的多个图标303。用户可以将相关图标从第一窗口301拖动到第二窗口302。特别而言,用户可以将图标拖放到包括各个行(本文中也称为组或集合)的特定可视配置中,如图4中的用户接口400中所示的那样,其中,可以在水平和垂直两方向上彼此相邻地放置图标。

根据各种实施例,可以将与给定行上(例如,在水平行上在水平方向上彼此相邻地放置)的图标相关联的项转换成在每个相关项之间具有OR(或)运算符的搜索查询串。此外,可以将多个前述行(例如,在垂直方向上彼此相邻地布置的水平行)视为在每行之间具有AND(与)运算符的搜索查询串。例如,参考图4中所示的可视配置400,由于项MIT和Harvard在给定水平行上在水平方向上彼此相邻,所以搜索查询生成系统200将生成与第一行相关联的搜索查询串(“MIT”OR“Harvard”)。类似地,由于在第四条水平行上彼此相邻地放置项CSS、JavaScript、HTML5和Ajax,所以搜索查询生成系统200将生成与第四行相关联的搜索查询串(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)。此外,系统200将每一行上的所有相关搜索串与AND布尔逻辑运算符相关联,以便生成完整搜索查询串。例如,对于图4中所示的可视配置400,搜索查询生成系统200可以生成搜索串:(“MIT”OR“Harvard”)AND(“MBA”)AND(“COMPUTER SCIENCE(计算机科学)”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)。在图4中所示的可视配置400中,用户还可以选择图标(例如,通过右键点击它),以便向其应用否定(NOT)布尔逻辑运算符。在这种情况下,如在可视配置401中所见的,图标的颜色或阴影可能改变(例如,变为红色)。因此,如果以该方式选择MBA搜索项,则与图4中所示的可视布置401相关联的完整搜索查询串将改变为:(“MIT”或“Harvard”)AND(NOT(“MBA”))AND(“COMPUTER SCIENCE”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)。

因此,用户可以容易地操纵图标以便生成复杂的搜索查询串。用户也可以点击任何图标上的“X”按钮,以从适当的可视布置中移除该图标。一旦用户已经将图标操纵到适当的布置中,用户就可以选择图3中的搜索按钮305,以便自动地生成适当的完整搜索查询串,并将其自动地插入到搜索引擎的搜索栏中或使其立即由数据库处理,以便基于该完整搜索查询串来执行搜索。在一些实施例中,可以在用户将各种图标操纵进入和离开可视布置的时候或之后不久近似实时地生成完整搜索查询串并且在搜索栏中显示该完整搜索查询串。

在一些实施例中,通过选择图3中的保存按钮306,可以将当前可视布置保存为“超级块(superblock)”或“搜索图标块”以用于重新使用。例如,超级块可以显示在图3中的第一窗口301中,并且作为任何其他图标303而被操纵。例如,假设将图4中的可视布置401保存为“东海岸Webdev超级块”搜索块。图5示出了图标的另一可视布置500,其中用户不仅拖动与诸如“Stanford”或“UCLA”之类的基本的项相关联的图标,而且用户还拖动了整个“东海岸Webdev超级块”超级块。因此,可以与上述技术相一致地利用与“东海岸Webdev超级块”搜索块相关联的搜索查询串来生成更大搜索查询串。例如,基于图5中所示的可视布置500,搜索查询生成系统200将生成对应于(“Stanford”OR“UCLA”)AND(NOT((“MIT”OR“Harvard”)AND(NOT(“MBA”))AND(“COMPUTER SCIENCE”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)))AND(“COMPUTER SCIENCE”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)的搜索屏幕。

因此,可以使用超级块来生成其他超级块。例如,图6中的用户接口600包括使用另一个“东海岸”超级块所生成的另一个搜索查询串,其指定以下各种状态:“NY”OR“NJ”OR“CT”OR“MD”OR“DE”OR“VA”OR“NC”OR“SC”或“FL”。因此,搜索查询生成系统200将基于图6中所示的可视布置来生成的更大社交查询​​串对应于:(“MIT”OR“Harvard”)AND(NOT(“MBA”))AND(“NY”OR“NJ”OR“CT”OR“MD”OR“DE”OR“VA”OR“NC”OR“SC”或“FL”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)。在一些实施例中,用户可以在超级块上点击,并且在用户接口中可以打开的新窗口显示该超级块中的基础的可视布置和构成图标(例如,用于用户的编辑)。

在一些实施例中,每个图标不仅可以表示诸如“MIT”或“Javascript”之类的简单的项或词语,还可以表示诸如“学校=‘MIT’”或“技能=‘Javascript’”的属性值对,其中学校或技能可以是可经由搜索引擎来指定的属性。因此,搜索查询生成系统200可以显示用户接口,其使得用户能够指定新图标(例如,通过选择图3中所示的新按钮308),由此用户可以从各种维度或属性(例如,位置、技能、职称、行业、学校、学位、专业、经验等)进行选择,并且键入适当的值以生成属性值对和相关联的图标(其然后可以放置在图3中的窗口301中)。

图7是示出了与上述各种实施例相一致的示例方法700的流程图。方法700可以至少部分地由例如图2中所示的搜索查询生成系统200(或具有类似模块的装置,比如一个或多个客户端机器或应用服务器)来执行。在操作701中,用户接口模块202在第一用户接口元素(例如,参见图3中的窗口301)中显示在本文中也被称为候选搜索查询项图标的多个搜索查询项图标(例如,参见图3中的图标303),多个图标中的每一个对应于搜索查询项。在操作702中,用户接口模块202检测用户对多个图标中的一个或多个图标的选择以及用户对所选图标到第二用户接口元素中的具体可视配置中的操纵(例如,参见将图标304拖动到图3中的窗口302中)。

在操作703中,用户接口模块202确定具体可视配置包括所选图标的一个或多个不同的行或组(例如,图4中的可视布置401中的图标的水平行),其中不同的行或组中的每个包括定向在第一方向(例如,水平方向)上的所选图标中的一个或多个,并且其中不同的组定向在垂直于所述第一方向的第二方向(例如,垂直方向)上。

在操作704中,查询生成模块204针对每个不同的行或组而生成组搜索查询串,每个组搜索查询串包括与相应组中的一个或多个所选图标相关联的搜索查询项(例如,图4中的可视布置401中的第一行/组中的MIT和Harvard)。每个组搜索查询串还可以包括在相应的组搜索查询串(例如,对于图4中的可视布置401中的第一行/组的(“MIT”OR“Harvard”))中所包括的搜索查询项的对之间的第一类型的布尔搜索运算符(例如,“OR”布尔搜索运算符)。

在操作705中,查询生成模块204生成完整搜索查询串,该完整搜索查询串包括组搜索查询串中的每一个并且还包括在完整搜索查询串中所包括的组搜索查询串的对之间的第二类型的布尔搜索运算符(例如,“AND”布尔搜索运算符)。想到的是,方法700的操作可以并入本文中所公开的任何其他特征。可以根据需要省略或重新布置方法700中的各种操作。

在一些实施例中,查询生成模块204可以将与完整搜索查询串相关联的文本自动地插入(例如,复制和粘贴)到与搜索引擎相关联的搜索查询项输入用户接口元素(例如,搜索栏)中。在一些实施例中,查询生成模块204可以基于完整搜索查询串经由搜索引擎自动地执行搜索(例如,在将完整搜索查询串自动地插入到与该搜索引擎相关联的搜索查询项输入用户接口元素中之后)。

在上述示例中,第一类型的布尔搜索运算符对应于OR布尔搜索运算符,并且第二类型的布尔搜索运算符对应于AND布尔搜索运算符。然而,在其他实施例中,第一类型的布尔搜索运算符对应于AND布尔搜索运算符,并且第二类型的布尔搜索运算符对应于OR布尔搜索运算符。

在一些实施例中,用户接口模块202可以基于与搜索查询项图标中的每个相关联的搜索查询项中的每个的历史使用频率值,将多个搜索查询项图标填充并排列成列表(例如,参见图3中的窗口/列表301)。例如,最常用的图标(或者用于最常用的项的图标)可以在列表301中放置得较高。

在一些实施例中,用户接口模块202可以用针对构建查询的用户推荐或建议的搜索查询项来填充列表301。例如,在用户从列表301中选择了任何搜索查询项图标之前,用户接口模块202可以用搜索查询项图标(例如,如上所述的最频繁使用的搜索查询项图标)的集合填充列表301。一旦用户从列表301中选择了搜索查询项图标,用户接口模块202可以关于用户所选择的项来标识频繁配对或频繁共同出现的项。例如,如果用户选择项图标A(例如,“MIT”或“学校=‘MIT’”),则用户接口模块202可以访问先前搜索查询的历史日志数据,以便确定项图标A的用户选择通常跟随有项图标B1、B2或B3(例如,“JAVA”或“技能=‘Java’”)的用户选择。换句话说,项图标A和项图标B1、B2或B3是频繁配对或频繁共同出现的项。因此,用户接口模块202可以用针对用户选择过的项图标A的所有频繁配对或频繁共同出现的项图标B1、B2或B3来填充列表301。类似地,在用户选择项图标B1之后,用户接口模块202可以访问先前搜索查询的历史日志数据,以便确定项图标B1的用户选择(或者可替代地,项图标B1的用户选择所跟随的项图标A的用户选择)通常跟随有项C1、C2和C3的用户选择,并且用户接口模块202可以用所有频繁配对或频繁共同出现的项图标C1、C2和C3来填充列表301。因此,当用户正在构建可视搜索查询时,系统200建议针对频繁配对或频繁共同出现的项的图标。

在一些实施例中,在用户已经从列表301选择了搜索查询项图标之后,用户接口模块202可以关于用户所选择的项来标识类似的项或相关的项。例如,如果用户选择项图标“行业=‘因特网’”,则用户接口模块202可以访问诸如“技能=‘Javascript’”的相关图标的列表,并且在列表301中显示这样的相关图标。因此,用户接口模块202可以访问来自数据库(例如,图2中的数据库208)的描述相关图标的信息,以便在列表301中显示与用户所选择的图标相关的图标(并且防止在列表301中显示与用户所选择的图标不相关的无关图标)。

在一些实施例中,用户接口模块202可以显示自由格式文本输入字段(类似于搜索查询栏),使得用户可以经由文本输入字段输入搜索项,并且用户接口模块202将在窗口301中显示匹配的搜索查询项图标。例如,如果用户键入词语“Michigan”,则用户接口模块可以访问已知的标准化关键词的查找表,以便将词语“Michigan”与位置“Michigan”或学校“Michigan大学”相匹配。此后,用户接口模块202可以访问或生成表示关键词“密歇根州”或属性值对“位置=‘Michigan’”的标题为“Michigan”的搜索查询项图标,以及表示关键词“Michigan大学”或属性值对“学校=‘Michigan大学’”的标题为“Michigan大学” 的搜索查询项图标,并将它们包括在列表301中。在一些实施例中,前述文本输入字段可以包括用于标准化关键词的预先键入(typeahead),其中可以将用于用户最终选择的任何项的搜索查询项图标填充到列表301中。例如,如果用户在文本输入字段中键入关键词“技术”,则用户接口模块可以显示诸如“行业=‘技术’”和“学校=‘Massachusetts理工学院’”的匹配作为在文本输入字段下方的下拉菜单中的选项。如果用户选择前述下拉菜单中的“行业=‘技术’”,那么可以在列表301中显示相应的搜索查询项图标。

根据各种示例实施例,系统200可以执行将常规布尔搜索查询转换成本文中描述的各种实施例中所描述的可视表示的相反过程。例如,系统200可以显示自由格式文本输入字段(类似于搜索查询栏),并且用户可以在文本字段中键入或复制与粘贴布尔搜索查询,比如:(“MIT”OR“Harvard”)AND(NOT(“MBA”))AND(“COMPUTER SCIENCE”)AND(“CSS”OR“JavaScript”OR“HTML5”OR“AJAX”)。此后,系统200可以解析该查询并在用户接口窗口302中生成查询的可视表示(例如,参见图4中的可视布置401)。例如,查询生成模块204可以标识一个或多个项的组,其中每个组通过第一类型的布尔运算符而彼此分开,并且其中给定组中的项通过第二类型的布尔运算符而彼此分开。例如,查询生成模块204可以标识一个多个项的如下组,其中每组通过AND布尔运算符而彼此分开,并且其中给定组中的任何项通过OR布尔运算符而彼此分开:(“MIT”OR“Harvard”),(NOT(“MBA”)),(“COMPUTER SCIENCE”)以及(“CSS”OR“JavaScript”OR“HTML5”或“AJAX”))。然后,查询生成模块204可以将针对项的给定组的图标放置在相同行上,不同的组由分开的相邻行来表示,如图4中的可视布置401所示。

在一些实施例中,搜索查询项中的至少一个是词语,例如“实习”。在一些实施例中,搜索查询项中的至少一个是属性值对(例如,“技能=‘HTML’”、“学校=‘Harvard’”、“职位=‘程序员’”、“公司=‘苹果’”等)。

在一些实施例中,搜索查询项中的至少一个是包括一个或多个布尔搜索运算符的已保存的完整搜索查询串。例如,如下所述,由搜索查询生成系统200生成的完整搜索查询串可以被存储并且与在本文中被称为“超级块”或搜索块图标的其自己的图标相关联,其可以以与其他搜索查询项图标相同的方式而被操纵。

图8是示出了与上述各种实施例相一致的示例方法800的流程图。方法800可以至少部分地由例如图2中所示的搜索查询生成系统200(或具有类似模块的装置,比如一个或多个客户端机器或应用服务器)来执行。在操作801中,用户接口模块202接收用于将完整搜索查询串保存为搜索块图标的用户请求(例如,用户可以选择图3中所示的保存按钮306)。在操作802中,查询生成模块204将存储在数据库(例如,图2中的数据库208)中的数据实体与完整搜索查询串相关联。在操作803中,用户接口模块202在用户接口元素中显示搜索块图标(例如,参见图3中的窗口和图标的列表301),搜索块图标与完整搜索查询串相关联并且成为搜索查询项图标。想到的是,方法800的操作可以并入本文中所公开的任何其他特征。可以根据需要省略或重新布置方法800中的各种操作。

图9是示出了与上述各种实施例相一致的示例方法900的流程图。方法900可以至少部分地由例如图2中所示的搜索查询生成系统200(或具有类似模块的装置,比如一个或多个客户端机器或应用服务器)来执行。在操作901中,用户接口模块202接收用于与附加用户共享完整搜索查询串和/或搜索块图标的用户请求(例如,用户可以选择图3中所示的共享按钮307)。在操作902中,用户接口模块202自动地生成到该附加用户的、包括作为数据附件(attachment)的与适当的搜索块图标相关联的数据实体的草稿电子消息。想到的是方法900的操作可以并入本文中所公开的任何其他特征。可以根据需要省略或重新布置方法900中的各种操作。

在一些实施例中,本文中所描述的消息可以是任何类型的电子消息,包括电子邮件、文本消息(例如,短消息收发服务(SMS)消息、多媒体消息收发器(AAS)消息等)、与在线社交网络(例如Facebook、Linkedln、Wechat、WhatsApp等)相关联的即时消息、与在线聊天服务相关联的聊天消息、直接显示在搜索查询生成系统200的用户接口中的消息等。

图10是示出了与上述各种实施例相一致的示例方法1000的流程图。方法1000可以至少部分地由例如图2中所示的搜索查询生成系统200(或具有类似模块的装置,比如一个或多个客户端机器或应用服务器)来执行。在操作1001中,查询生成模块204接收包括作为数据附件的数据实体的电子消息,该数据实体与已保存的完整搜索查询串相关联(例如,与超级块相关联)。在操作1002中,用户接口模块202在用户接口元素中显示与已保存的完整搜索查询串相关联的搜索块图标(例如,参见图3中所示的窗口301中的图标303),该搜索块图标成为搜索查询项图标。想到的是,方法1000的操作可以并入本文中所公开的任何其他特征。可以根据需要省略或重新布置方法1000中的各种操作。

图11是示出了与上述各种实施例相一致的示例方法1100的流程图。方法1100可以至少部分地由例如图2中所示的搜索查询生成系统200(或具有类似模块的装置,比如一个或多个客户端机器或应用服务器)来执行。在操作1101中,用户接口模块202接收用于将特定行/组的图标(例如,对于图4中的可视布置401中的第一行/组的(“MIT”OR“Harvard”))转换成否定搜索查询项的用户请求。在操作1102中,用户接口模块202将NOT布尔搜索运算符与和该特定组相关联的完整搜索查询中的特定组搜索查询串相关联。想到的是,方法1100的操作可以并入本文中所公开的任何其他特征。可以根据需要省略或重新布置方法1100中的各种操作。在一些实施例中,用户可以指示单个图标应当与否定布尔逻辑运算符(而不是整行/整组的图标)相关联。因此,当生成针对该组/行的组搜索查询串时,搜索查询生成系统200可以将否定的布尔逻辑运算符与和该图标相关联的搜索查询项关联。

示例移动设备

图12是示出了根据示例实施例的移动设备1200的框图。移动设备可以对应于例如一个或多个客户端机器或应用服务器。图2中所示的系统200的一个或多个模块可以在移动设备1200上实现或者由移动设备1200来执行。移动设备1200可以包括处理器1210。处理器1210可以是适用于移动设备的商业上可获得的处理器中的各种不同类型的中的任何类型(例如,XScale架构微处理器、无联锁(Interlocked)流水线级的微处理器(MIPS)架构处理器或另一类型的处理器)。诸如随机存取存储器(RAM)、闪速存储器或其他类型的存储器之类的存储器1220通常对处理器1210而言是可访问的。存储器1220也可以适于存储操作系统(OS)1230,以及诸如可以向用户提供基于位置的服务的移动位置使能应用的应用程序1240。处理器1210可以直接或经由适当的中间硬件而耦合到显示器1250以及耦合到一个或多个输入/输出(I/O)设备1260,一个或多个输入/输出(I/O)设备1260诸如小键盘、触摸板传感器、麦克风等。类似地,在一些实施例中,处理器1210可以耦合到与天线1290对接的收发器1270。取决于移动设备1200的性质,收发器1270可以被配置为经由天线1290来发射和接收蜂窝网络信号、无线数据信号或其他类型的信号。此外,在一些配置中,GPS接收机1280还可以利用天线1290来接收GPS信号。

模块、部件和逻辑

某些实施例在本文中被描述为包括逻辑或多个部件、模块或机制。模块可以构成软件模块(例如,具体化(1)在非暂时机器可读介质上或(2)在传输信号中的代码)或硬件实现的模块。硬件实现的模块是能够执行某些操作的有形单元并且可以以某种方式进行配置或布置。在示例实施例中,可以由软件(例如,应用或应用部分)将一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或一个或多个处理器配置为硬件实现的模块,其操作来执行如本文所述的某些操作。

在各种实施例中,硬件实现的模块可以机械地或电实现。例如,硬件实现的模块可以包括被永久配置为执行某些操作的的专用电路或逻辑(例如,作为专用处理器,比如现场可编程门阵列(FPGA)或专用集成电路(ASIC))。硬件实现的模块还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路(例如,如包含在通用处理器或其他可编程处理器内的)。应当理解,可以由成本和时间考虑来驱动以专用和永久配置的电路或以临时配置(例如由软件配置)的电路机械地实现硬件实现的模块的决定。

因此,术语“硬件实现的模块”应被理解为包括作为被物理构造、永久配置(例如,硬连线)或临时或瞬时配置(例如,编程)来以某种方式进行操作和/或来执行本文所述的某些操作的实体的有形实体。考虑到硬件实现的模块被临时配置(例如,编程)的实施例中,硬件实现的模块中的每一个不需要在任何时刻处被配置或实例化。例如,在硬件实现的模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为相应不同的硬件实现的模块。软件可以相应地配置处理器例如以在一个时刻处构成特定的硬件实现的模块,并在不同的时刻处构成不同的硬件实现的模块。

硬件实现的模块可以向其他硬件实现的模块提供信息并从其接收信息。因此,所描述的硬件实现的模块可以被认为是通信地耦合的。在同时存在多个这样的硬件实现的模块的情况下,可以通过连接硬件实现的模块的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间处配置或实例化多个硬件实现的模块的实施例中,可以例如通过在多个硬件实现的模块对其具有访问的存储器结构中存储和取回信息来实现这样的硬件实现的模块之间的通信。例如,一个硬件实现的模块可以执行操作,并将该操作的输出存储在其通信地耦合到的存储器设备中。然后,另外的硬件实现的模块可以在稍后的时间访问存储器设备来取回和处理该存储的输出。硬件实现的模块还可以发起与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。

至少部分地由临时配置(例如通过软件)或永久配置以执行相关操作的一个或多个处理器来执行本文中所描述的示例方法的各种操作。无论是临时还是永久配置,这样的处理器可以构成操作以执行一个或多个操作或功能的处理器实现的模块。在一些示例实施例中,本文中所称的模块可以包括处理器实现的模块。

类似地,本文中所描述的方法可以至少部分地是处理器实现的。例如,方法的至少一些操作可以由一个或者多个处理器或处理器实现的模块来执行。操作中某些操作的性能可以分布在一个或多个处理器中,所述处理器不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,一个或多个处理器可以位于单个位置中(例如,在家庭环境、办公环境内或作为服务器群),而在其他实施例中,处理器可以跨多个位置分布。

一个或多个处理器还可以操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,操作中的至少一些可以由计算机的组(作为包括处理器的机器的示例)来执行,这些操作经由网络(例如,因特网)和经由一个或多个适当的接口(例如,应用程序接口(API))是可访问的。

电子装置和系统

示例实施例可以实现在数字电子电路中、或在计算机硬件、固件、软件中或它们的组合中。示例实施例可以使用计算机程序产品来实现,所述计算机程序产品例如是有形地包含在信息载体中的计算机程序,所述计算机程序例如在用于由数据处理装置执行或控制数据处理装置的操作的机器可读介质中,所述数据处理装置例如是可编程处理器、计算机或多个计算机。

计算机程序可以以包括编译或解释语言的任何形式的编程语言来编写,并且其可以以包括作为独立程序或者作为适于在计算环境中使用的模块、子程序或其他单元的任何形式进行部署。可以部署计算机程序以在一个计算机上或在多个计算机上执行,所述多个计算机在一个地点处或者跨多个地点分布并由通信网络互连。

在示例实施例中,可以由执行计算机程序的一个或多个可编程处理器执行操作,以通过对输入数据进行操作并生成输出来执行功能。方法操作也可由专用逻辑电路,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)来执行,并且示例实施例的装置可以被实现为专用逻辑电路,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是凭借运行在相应的计算机上并且彼此具有客户端-服务器关系的计算机程序而产生的。在部署可编程计算系统的实施例中,应当理解,硬件和软件架构两者都需要考虑。具体来说,应当理解,是在永久配置的硬件(例如,ASIC)中、在临时配置的硬件(例如,软件和可编程处理器的组合)中、还是以永久和临时配置的硬件的组合来实现某个功能的选择可以是设计选择。下面记载了在各种示例实施例中可以部署的硬件(例如,机器)和软件架构。

示例机器架构和机器可读介质

图13是计算机系统1300的示例形式的机器的框图,在其中可以执行用于使机器执行本文所讨论的任何一个或多个方法的指令。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中的服务器或客户端机器的能力中操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、网络路由器、交换机或网桥、或能够执行指定该机器采取的动作的指令(顺序的或以其他方式)的任何机器。此外,虽然只示出了单个机器,但是术语“机器”还应被视为包括单独地或联合地执行一个(或多个)指令集以执行本文所讨论的任何一个或多个方法的任何机器集合。

示例计算机系统1300包括处理器1302(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器1304和静态存储器1306,它们经由总线1308彼此通信。计算机系统1300还可以包括视频显示单元1310(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统1300还包括字母数字输入设备1312(例如,键盘或触敏显示屏)、用户接口(UI)导航设备1314(例如,鼠标)、磁盘驱动器单元1316、信号生成设备1318(例如,扬声器)和网络接口设备1320。

机器可读介质

磁盘驱动器单元1316包括在其上存储了一个或多个指令和数据结构的集合(例如,软件)1324的机器可读介质1322,所述一个或多个指令和数据结构的集合(例如,软件)1324包含本文所描述的任何一个或多个方法或功能或者被其所利用。指令1324在由计算机系统1300对其执行期间也可以完全地或至少部分地驻留在主存储器1304内和/或处理器1302内,主存储器1304和处理器1302也构成机器可读介质。

虽然在示例实施例中将机器可读介质1322示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令或数据结构的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储、编码或携带用于由机器执行并且使机器执行本公开的任何一个或多个方法的指令的任何有形介质,或者能够存储、编码或携带由这样的指令利用或与这样的指令相关联的数据结构的任何有形介质。因此,术语“机器可读介质”应被视为包括但不限于固态存储器以及光和磁介质。机器可读介质的具体示例包括非易失性存储器,包括例如半导体存储器器件,例如可擦除可编程只读存储器(EPRQM)、电可擦除可编程只读存储器(EEPROM)和闪存器件;磁盘,诸如内部硬盘和可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。在一个实施例中,机器可读介质可以包括非瞬态存储介质或瞬态或传输介质。

传输介质

指令1324还可以使用传输介质通过通信网络1326进行传输或接收。可以使用网络接口设备1320以及多个熟知的传输协议(例如,HTTP)中的任何一个协议来传输指令1324。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、因特网、移动电话网、简易老式电话(POTS)网络和无线数据网络(例如,WiFi、LTE和WiMAX网络)。术语“传输介质”应被视为包括能够存储、编码或携带用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或用于促进这样的软件的通信的其他无形介质。

虽然已经参考具体示例实施例描述了实施例,但是清楚的是,在不脱离本发明的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制意义的。形成其一部分的附图通过说明而非限制的方式示出可以实践主题的具体实施例。足够详细地描述了所示出的实施例,以使本领域技术人员能够实践本文所公开的教导。可以利用以及从中导出其他实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,这个具体实施方式不应被认为是限制意义的,并且各种实施例的范围仅由所附权利要求以及这样的权利要求所赋予的等同物的全部范围来限定。

仅仅为了方便起见,本发明主题的此类实施例可以在本文中单独地和/或共同地由术语“发明”来提及,并非旨在将本申请的范围自愿地限制于任何单个发明或发明概念——如果事实上公开了一个以上的发明或发明概念。因此,尽管本文已经示出和描述了具体实施例,但是应当理解,为实现相同目的而计算出的任何布置可以代替所示的具体实施例。本公开旨在覆盖各种实施例的任何和所有适配或变化。本文中未具体描述的上述实施例的组合以及其他实施例对于在审核上述描述时的本领域技术人员将是清楚的。

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