搜索建议的安全性修剪的制作方法

文档序号:11160955阅读:244来源:国知局
搜索建议的安全性修剪的制造方法与工艺

使用搜索引擎来最大化在大量数据中定位相关信息的可能性。为了在制定查询的过程中帮助用户,大多数搜索引擎包括查询建议功能。更具体地,在发起查询的执行之前,一个或多个查询基于指定的查询被建议。通常,查询建议在在查询被输入时被确定并且在搜索框中被提供以自动完成查询。当前的查询建议系统向用户呈现预定数目的查询制定,并且强迫用户决定哪一个(如果有的话)最佳匹配它们的搜索意图。选择查询建议之一导致查询的评估和对应于选择的查询制定的搜索结果的呈现,就像用户手动键入该查询到搜索框中一样。



技术实现要素:

下面提出简化的概述,以便提供对所公开的主题的一些方面的基本理解。该概述不是广泛的概括。其不旨在标识重要/关键元素或者描述所要求保护的主题的范围。其唯一目的是以简化的形式提出一些构思,作为稍后提出的更详细描述的前序。

简要地说,本公开涉及针对搜索建议的安全性修剪。在发起查询的执行之前,响应于搜索引擎用户的查询,一个或多个建议可以被生成并且被返回。此外,建议可以被修剪或者限制为一个或多个数据库上的数据,该查询被指定在该数据库上并且用户被授权访问该数据库。此外,可以使用对用户可访问的数据动态地生成查询建议。

为了实现前述和相关目的,本文中结合以下描述和附图来描述所要求保护的主题的某些说明性方面。这些方面指示可以实践主题的各种方式,所有方式旨在落入所要求保护的主题的范围内。当结合附图考虑时,从下面的详细描述中,其他优点和新颖特征将变得显而易见。

附图说明

图1是搜索建议系统的框图。

图2是代表性处理组件的框图。

图3是代表性访问组件的框图。

图4是代表性建议组件的框图。

图5是查询建议的方法的流程图。

图6是生成查询建议的方法的流程图。

图7是生成相关查询的方法的流程图。

图8是示出针对本公开的多个方面的适当操作环境的示意性框图。

具体实施方式

后端数据库上的安全性能够防止对数据库的未授权访问。例如,如果用户尝试通过查询执行来访问数据库中的数据,则在用户未被授权访问数据库或者数据库中的特定数据的情况下,没有结果将被返回。然而,可能的是用户在查询制定期间通过查询建议可以有效地提取数据,或者以其他方式知道数据(用户缺少对于该数据的访问权限)的存在。作为示例,假设员工未被授权具有对存储在数据库上的公司的客户访问。员工可以写查询,例如“向……售出的产品的总数是多少”并暂停。建议可以被生成以完成暴露客户的至少一个子集的查询,由此避开后端数据库安全性。

下面的细节总地涉及搜索建议的安全性修剪。为了支持查询制定,在发起查询的执行之前,响应于由搜索引擎的用户指定的搜索查询,一个或多个建议可以被生成并且被提供。此外,建议可以被修剪或者限制为用户被授权访问的数据以保留安全性。与基于用户访问权限过滤多个静态查询建议相对,还可以使用对用户可访问的数据来动态地生成查询建议。更具体地,在接收到来自用户的查询时,可以基于与用户和数据相关联的访问信息来关于什么数据对用户可访问来进行确定。随后,可以基于对用户可访问的数据来动态地生成一个或多个查询建议。

本公开的各种方面现在更详细地参考附图进行描述,其中贯穿全文相同标记通常指代相同或者对应元素。然而,应当理解,附图和与其相关的详细描述不旨在将所要求保护的主题限制为所公开的特定形式。相反,意图是覆盖落入所要求保护的主题的精神和范围内的所有修改、等同物和替代物。

首先参考图1,示出搜索建议系统100。搜索建议系统100与一个或多个数据库140对接,并且包括查询界面组件110、处理组件120、访问组件130和建议组件150。查询界面组件110被配置为从搜索引擎的用户接收查询,例如通过文本框和返回建议。根据一个实施例,查询界面组件110可以是被配置为接受一个或多个关键字的关键字查询界面。根据另一实施例,查询界面组件110可以是被配置为接受与关键字相对的用户问题的自然语言界面。作为示例,自然语言搜索可以是“什么状态具有最低收入税”,而相同搜索可以使用诸如“收入税状态最低”的关键字被指定。为了清楚和简要,继续的描述关注于自然语言查询。然而,所要求保护的主题不限于此。

处理组件120接收、检索、或者以其他方式获得或者获取来自查询界面组件110的查询,并且处理查询以确定其含义以及针对建议的机会。将注意力简要地转到图2,代表性处理组件120被更详细地描述。处理组件120包括解析器组件210、分析组件220和参数标识组件230。解析器组件210被配置为编解析查询串,标识词语,并且生成查询的表示(例如,解析树、分层结构……),以用于根据已知的或者新颖的解析器技术的进一步处理。

分析组件220被配置为进一步处理由解析器组件210产生的查询的表示以确定查询的含义。根据一个方面,分析组件可以采用模板来确定含义。多个模板可以被采用,其中模板包括表示一种类别的自然语言问题或者查询的词语或者特殊符号的串。分析组件220可以尝试将查询匹配到一个或多个预定模板,例如,其中查询的值与由模板捕获的值相同或者相似。备选地,可以采用各种人工智能和/或统计分析来确定查询的含义。

参数标识组件230被配置为标识查询的未指定的一个或多个参数,并且提供针对建议的机会。例如,如果采用基于模板的分析,则可以在查询的参数和匹配模板的参数之间进行比较,以确定未指定的一个或多个参数,或者换句话说,模板槽或者间隙。此外,可以考虑通过一个或多个数据库通过参照与数据库相关联的例如标识数据库的底层结构的元数据而可用的数据。作为示例,考虑查询或者部分查询“谁为……赢得了奖牌”。基于一个或多个匹配模板的分析,可以确定在词语“为”之后存在未指定的参数、槽或者间隙,并且基于参数本身和可用数据,该参数可以是运动、国家或者洲。如果数据库不包括针对运动的数据,则参数可以与国家和洲相关联。

返回图1,访问组件130被配置为实现关于存储在一个或多个数据库140中的数据的访问控制。诸如安全性上下文的访问信息可以关于数据以及用户被使用,并且被采用以实现访问控制。简要地转向图3,更详细地示出代表性访问组件130。用户访问组件310被配置为获取关于搜索引擎用户的访问信息。这样的访问信息可以从访问控制数据库或者类似存储库被检索,并且包括安全性凭证或者权限。例如,可以要求用户登录和被认证。随后,可以使用用户的身份来查找访问信息,或者换句话说,用户的安全性上下文。数据访问组件320被配置为获取关于数据的访问信息。例如,数据库可以包括关于有关在各种等级的粒度(例如按照文件、行、列、或者单独的数据)处的数据的权限的规则。数据访问组件320被配置为从一个或多个数据源获取这样的访问信息。比较组件330被配置为相对于关于数据指定的权限来比较用户的权限,并且标识用户被授权访问的数据。

图1的建议组件150被配置为接收或者检索关于如由访问组件130确定的用户被允许访问的数据的信息,并且基于输入查询和用户被允许访问的数据动态地生成查询建议。随后,这些查询建议可以通过查询界面组件110被提供到用户。与生成查询建议相关联的动态性和与改变的输入查询相关联的动态性不同。更具体地,基于给定的输入查询动态地生成建议。如果输入查询改变,例如当用户继续键入时,则因为查询不同,建议也可以改变。这些建议可以被动态地生成,而不是从先前储存的静态建议查找以满足不同查询。

参考图4,进一步详细示出代表性建议组件150。如所示,建议组件150包括被配置为生成与输入查询相关的查询的集合的查询生成器组件410。例如,查询的集合可以包括完成输入查询、片段或者部分查询的查询。此外,查询生成器组件410被配置为基于输入查询和用户被允许访问的数据生成查询的集合。此外,查询的集合可以被动态地生成。例如,匹配输入查询的一个或多个模板可以被用于生成相关查询。模板的未指定的参数可以被分配用户被授权访问的数据。换句话说,由输入查询在模板中留下的槽或者间隙可以使用对用户可访问的数据来填充。

再考虑其中用户输入查询或者问题“谁为……赢得了奖牌”的示例。基于该查询和来自底层数据库的元数据,可以生成填充词语“为”之后的槽的查询。槽将不被填充不在底层数据库中的信息。例如,即使对于在数据库中的数据,也可以对数据进行筛选,以确保其基于一个或多个模板有意义。这里,可以确定运动、国家和洲是适当的。因此,存在三个模板:一个针对体育,一个针对国家,并且一个针对洲。现在,查询生成器组件410至少可以发起与数据库的交互以从数据库检索针对运动、国家和洲的数据以填充模板中的这三个槽,并且根据三个模板建立相关查询的集合。此外,模板仅使用用户被允许访问的数据被填充。因此,如果用户不具有对体育的访问,则该模板将不被用于创建相关查询。此外,如果用户不被允许访问北美的国家,则查询将仅使用诸如德国和西班牙的北美以外的国家来创建。换句话说,基于用户被允许访问的数据的部分生成相关查询。

建议组件150还包括选择组件420。选择组件420被配置为选择或者标识呈现为建议或者建议的查询的相关查询的至少一个子集。在一个实例中,选择组件420可以被配置为选择N个查询,其中“N”是正整数,或者换句话说删减相关查询的集合。例如,选择组件420可以标识可能的相关查询中的仅五个查询以供建议。此外,选择可以被配置为标识最高数目的查询,其中最高查询比其他查询更可能被选择。因此,任何数目的因素可以被考虑,除其他事物外,包括使用频率和用户上下文信息。例如,在基于数据的使用频率向数据分配得分的元数据可用的情况下,那些得分可以用作选择相关查询的子集的基础。关于奖牌查询,冰壶运动比花样滑冰更不受欢迎。因此,与这两个运动相关联的使用频率得分可以反映该事实,并且被用于相对于冰壶选择花样滑冰运动。此外,包括偏好和搜索历史的用户上下文信息可以被用于使得能够选择为特定用户定制的查询。此外,选择组件420可以实现多样性策略,其中使用建议实现可配置量的多样性。例如,三个建议可以涉及体育并且三个建议可以关于国家,而不是选择建议体育的六个查询。

排序组件430也由建议组件150提供。排序组件430被配置为标识搜索建议的顺序,或者换句话说对搜索建议划分优先级。因此,排序组件430可以从选择组件接收相关查询的子集,并且基于由用户选择的可能性对查询进行排序。为了做出这样的确定,排序组件430可以基于用户的频率或者用户上下文(诸如搜索偏好和历史)来计算得分。在由选择组件420关于选择多个查询来计算这些得分的情况下,该信息可以被重新用于排序。备选地,排序组件430可以计算这样的得分。基于获取或者计算的得分,排序组件430可以将搜索查询从最可能由用户选择到最不可能由用户选择地进行排序,反之亦然。

此外,应当理解,与基于用户的频率和用户上下文的诸如删减的选择相关联的功能的至少一部分可以结合相关查询生成来执行,以将查询生成集中到相关查询,并且减少动态地生成的查询的总数。例如,如果数据库记录与数据相关联的使用频率信息以及访问信息,则可以设置阈值,该阈值排除不经常使用(例如,低于阈值)的数据在相关查询生成中被采用。

已经关于若干组件之间的交互描述了上述系统、架构、环境等。应当理解,这样的系统和组件可以包括其中指定的那些组件或者子组件、指定的组件或者子组件中的一些和/或另外的组件。子组件还可以被实现为通信地耦合到其他组件,而不是被包括在父组件内。此外,一个或多个组件和/或子组件可以被组合为单个组件以提供聚合功能。系统、组件和/或子组件之间的通信可以根据推送和/或拉取模型来实现。为简要起见,组件还可以与本文中未具体描述但是本领域技术人员已知的一个或多个其它组件交互。

此外,以上公开的系统和以下方法的各种部分可以包括或者采用人工智能、机器学习或者基于知识或者规则的组件、子组件,过程,装置,方法或者机制(例如,支持向量机、神经网络、专家系统、贝叶斯信念网络、模糊逻辑、数据融合引擎、分类器……)。这样的组件尤其可以使由其执行的某些机制或者过程自动化,以使系统和方法的多个部分更自适应以及高效和智能。作为示例而非限制,分析器组件220可以采用这样的机制,以确定查询或者问题的含义。

鉴于上述示例性系统,可以根据所公开的主题来实现的方法将与参考图5-7的流程图被更好地理解。虽然为了简化说明的目的,将方法示出和描述为一系列框,但是应当理解和明白,所要求保护的主题不限于框的顺序,因为根据本文中所描绘和描述的内容,一些框可以以不同的顺序发生和/或与其它框同时发生。此外,并非所有示出的框都被要求实现在下文中描述的方法。

参考图5,示出查询建议的方法500。在标记510,从搜索引擎用户接收、检索或者以其它方式获得或者获取查询。在发起查询的执行或者评估之前,可以通过查询界面从用户接收包括查询片段或者部分查询的查询。例如,用户可以通过键入或者语音输入在搜索框中指定查询。根据一个方面,查询可以是自然语言查询。然而,也可以为关键字搜索提供支持。在标记520,基于与用户和数据相关联的访问信息来确定对用户可访问的数据。访问信息可以与用户身份相关联。在验证用户的身份时,身份可以被用于查找定义用户权限、特权、或者关于访问数据的安全性等级的值或者值的集合。数据本身也可以包括定义需要什么权限或者安全性等级来访问包括特定文档或者其部分(例如,数据元素、行、列、组……)的值或者值的集合。在附图标记530,基于对用户可访问的数据来动态地生成一个或多个查询建议。在一个实例中,查询建议可以推荐可以如何完成查询。在附图标记540,一个或多个查询建议可以通过查询界面被返回到用户。例如,一个或多个建议可以以在搜索框下面的下拉菜单样式被呈现。在选择查询建议时,可以发起执行或者评估查询的搜索。在查询改变时,例如在继续的用户指定时,该方法可以在510重新开始。根据一个方面,可以要求预定的暂停以触发建议,以不执行关于建议的动态生成的连续的或者不必要的计算。

作为示例,考虑通过查询界面文本框指定的自然语言查询“谁为……赢得了奖牌”。此外,假设基于用户和数据的安全性级别,用户不具有对针对北美的国家的奖牌的访问。查询建议的方法500可以产生并且返回包括北美以外的国家和洲的查询建议,诸如“谁为欧洲赢得了奖牌”,“谁为非洲赢得了奖牌”,“谁为吉尔吉斯斯坦赢得了奖牌”和“谁为阿尔巴尼亚赢得了奖牌”。

图6是描绘生成查询建议的方法600的流程图。在附图标记610,基于可访问的数据生成相关查询的集合。更具体地,使用基于用户的访问权限和数据的所要求的权限对用户可访问的数据创建与用户输入查询相关的查询。在示例查询“谁为……赢得了奖牌”中,相关查询可以包括查询,具体地包括包含国家和洲(这样的数据存在于数据库中)的查询。相关查询的另一集合可以是运动,但是假设数据库不具有关于运动的数据,则这样的相关查询将被排除。此外,考虑对数据库数据的用户访问。假设用户仅具有访问北美以外的国家和洲的权限,则相关查询的集合被进一步修剪。在附图标记620,相关查询的集合的至少一个子集被选择为建议的查询或者查询建议。在一个实例中,选择被用于将相关查询的集合删减为预定数目的查询以供建议。这样的删减操作可以采用其他信息和因素,除其他事物外,包括使用频率,用户上下文(例如,搜索偏好、搜索历史……)和多样性。此外,作为选择或者另一动作的一部分,选择的搜索建议可以通过给出查询的用户选择的可能性和其他信息被排序或划分优先级。例如,可以采用关于删减计算或者获得的值,诸如使用频率。可以生成或者计算不关于删减使用而是用于排序的另外的值。例如,可以使用用户上下文来以为用户定制的方式来对查询进行排序。

图7示出生成相关查询的方法700。在附图标记710,标识与输入查询匹配的模板。可以通过将输入查询与预定的模板的集合进行匹配来标识模板。模板是表示一种类别的查询的词语或者特殊符号的串。模板可以包括一个或多个参数和值。在标记720,检测不具有由输入查询指定的值的模板参数。换句话说,标识未指定的模板参数、间隙或者槽。在“谁为……赢得了奖牌”的示例中,未指定的参数可以在词语“为”之后被检测到。在标记730,从在其上指定输入查询的数据库获取对特定用户可访问的数据。在附图标记740,通过使用获取的数据来设置或者分配未指定的参数的值来构造一个或多个查询。例如,值“欧洲”、“非洲”和“阿尔巴尼亚”可以从数据库被获取,并且被用于构造以下相关查询:“谁为欧洲赢得了奖牌”,“谁为非洲赢得了奖牌”和“谁为阿尔巴尼亚赢得了奖牌”。

常规地,搜索引擎已经提供了自动完成功能。然而,建议是基于人们在过去已经输入的内容。根据一个方面,其他用户是否在过去已经输入查询并非与查询建议特别相关。相关的是关于一个或多个底层数据库知道什么。换句话说,主题搜索建议不涉及对任意数据源而是对特定数据源的搜索。还相关的是关于访问数据的用户权限或者特权。

此外,查询不需要被保存到永久存储装置,并且随后基于用户权限被检索和过滤。相反,查询建议可以基于对特定用户可访问的数据被动态地生成。这至少对于资源使用(即存储)是有利的。即使对于小的数据库,潜在地可以提交无限数目的查询。如果所有查询都可以被保存,则它们将占用大量的存储空间。通过动态地生成查询建议,可以避免该问题。

本公开支持各种产品和过程,该产品和过程执行或者被配置为执行关于搜索建议的安全性修剪的各种动作。之后是示例性方法、系统和计算机可读存储介质。

一种方法包括采用至少一个处理器,至少一个处理器被配置为执行存储在存储器中的计算机可执行指令以执行以下动作:在发起查询的执行之前,接收由搜索引擎的用户指定的查询,基于与用户和对用户可访问的数据相关联的访问信息来确定数据,以及基于对用户可访问的数据动态地生成一个或多个查询建议。生成一个或多个查询建议包括:基于对用户可访问的数据生成相关查询的集合,以及选择相关查询的集合的至少一个子集。还可以基于使用频率来执行选择相关查询的集合的至少一个子集。生成相关查询的集合包括标识与由用户指定的查询匹配的模板,检测至少一个未指定的模板参数,以及通过使用对用户可访问的数据设置针对至少一个未指定的模板参数的值来构造一个或多个查询。该方法还包括接收自然语言查询,基于用户上下文对一个或多个查询建议进行排序,并且在显示设备上呈现一个或多个查询建议。

一种系统包括被耦合到存储器的处理器,处理器被配置为执行存储在存储器中的以下计算机可执行组件:第一组件,其被配置为在向搜索引擎提交查询以供执行之前,从搜索引擎的用户接收查询;第二组件,其被配置为基于与用户和对用户可访问的数据相关联的可访问性信息来获取数据;以及第三组件,其被配置为基于查询和由用户可访问的数据动态地生成一个或多个查询建议。在一个实例中,查询是自然语言问题。系统还可以包括第四组件,其被配置为确定查询的含义,其在一个实例中被配置为将查询与预定模板匹配。系统还包括第五组件,其被配置为相对于模板标识由查询未指定的参数。系统还包括第六组件,其被配置为通过使用对用户可访问的数据设置未指定的参数的值来生成相关查询的集合。第七组件被配置为选择相关查询的集合的子集作为一个或多个查询建议。系统还包括第八组件,其被配置为基于上下文信息将相关查询的集合的子集进行排序,其中在一个实例中,第八组件被配置为基于使用对用户可访问的数据设置的参数的值的使用频率对相关查询的集合的子集进行排序。

一种具有存储在其上的指令的计算机可读存储介质,指令使得至少一个处理器能够在执行指令时执行方法,该方法包括在发起查询的执行之前,接收由搜索引擎的用户指定的查询,基于与用户和对用户可访问的数据相关联的访问信息来确定数据,以及基于对用户可访问的数据动态地生成一个或多个查询建议。该方法还包括接收自然语言查询。此外,该方法包括标识与由用户指定的查询匹配的模板,检测至少一个由用户未指定的模板参数,以及通过使用对用户可访问的数据分配针对至少一个未指定的模板参数的值来构造一个或多个查询。此外,该方法包括选择一个或多个查询的至少一个子集作为一个或多个查询建议。

词语“示例性”或者其各种形式在本文中被用于意指用作示例、实例或者说明。本文中描述为“示例性”的任何方面或者设计不一定被解释为比其它方面或者设计优选或者有利。此外,示例仅出于清楚和理解的目的被提供,并且不意味着以任何方式限制或者约束所要求保护的主题或者本公开的相关部分。应当理解,不同范围的大量另外的或者备选的示例可以被呈现,但是出于简要的目的已经被省略。

如在本文中使用的,术语“组件”和“系统”以及其各种形式(例如,组件、系统、子系统……)旨在指代计算机相关的实体、或者是硬件、硬件和软件的组合、软件或者执行中的软件。例如,组件可以但不限于是在处理器上运行的进程、处理器、对象、实例、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在执行进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。

如在本描述和所附权利要求书中使用的,连词“或者”旨在意指包含性“或者”而不是排他性“或者”,除非另有指定或者从上下文是清楚的。换句话说,“X”或者“Y”旨在意指任何包含性排列的“X”和“Y”。例如,如果“‘A’采用‘X’”、“‘A’采用‘Y’”或者“‘A’采用‘X’和‘Y’两者”,则“‘A’采用‘X’或者‘Y’”在任何前述实例之下是满足的。

此外,就术语“包含”、“含有”、“具有”、“有”或者其形式上的变体都在详细描述或者权利要求中使用的范围内,这样的术语旨在是以类似于术语“包括”的方式为包含性的,就像“包括”在权利要求中被用作过渡词时被解释的。

为了提供针对要求保护的主题的上下文,图8以及以下讨论旨在提供对其中主题的各种方面可以被实现的适当环境的简要、总体描述。然而,适当环境仅是示例,并且不旨在暗示关于用途或者功能的范围的任何限制。

虽然以上公开的系统和方法可以在一个或多个计算机上运行的程序的计算机可执行指令的总体上下文中进行描述,本领域技术人员将认识到多个方面也可以结合其它程序模块等来实现。通常,除其他事物外,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构。此外,本领域技术人员将理解的是,以上系统和方法可以使用各种计算机系统配置被实现,该计算机系统配置包括单处理器、多处理器或者多核处理器计算机系统、小型计算设备、大型计算机以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器的或者可编程的消费或者工业电子设备等。多个方面也可以在其中由通过通信网络链接的远程处理设备执行任务的分布式计算环境中实践。然而,所要求保护的主题的一些方面(如果不是全部方面)可以在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或者两者中。

参考图8,示出了示例通用计算机或者计算设备802(例如,台式计算机、笔记本计算机、平板计算机、服务器、手持式设备、可编程消费或者工业电子设备、机顶盒、游戏系统、计算节点……)。计算机802包括一个或多个处理器820、存储器830、系统总线840、大容量存储装置850和一个或多个接口组件870。系统总线840至少通信地耦合以上系统组件。然而,要理解,计算机802以其最简单的形式可以包括耦合到存储器830的一个或多个处理器820,处理器820执行存储在存储器830中的各种计算机可执行动作、指令和/或组件。

(多个)处理器820可以使用被设计为执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑设备、分立的门或者晶体管逻辑、分立的硬件组件或者其任意组合来实现。通用处理器可以是微处理器,但在备选方案中,处理器可以是任何处理器、控制器、微控制器或者状态机。(多个)处理器820还可以被实现为计算设备的组合(例如DSP与微处理器的组合)、多个微处理器、多核处理器、与DSP内核结合的一个或多个微处理器或者任何其它这样的配置。

计算机802可以包括各种计算机可读介质或者以其他方式与各种计算机可读介质交互,以支持计算机802的控制以实现所要求保护的主题的一个或多个方面。计算机可读介质可以是可以由计算机802访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和非可移除介质。计算机可读介质可以包括计算机存储介质和通信介质。

计算机存储介质包括以任何方法或者技术实现的易失性和非易失性、可移除和非可移除介质,以用于诸如计算机可读指令、数据结构、程序模块或者其他数据的信息的存储。计算机存储介质包括存储器设备(例如,随机访问存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、盒式磁带、磁带……)、光学盘(例如,光盘(CD)、数字多功能盘(DVD)……),和固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……),或者可以被用于存储(与发送相对)由计算机802可访问的所希望的信息的任何其他类似介质。因此,计算机存储介质不包括经调制的数据信号。

通信介质通常包含计算机可读指令、数据结构、程序模块、或者在诸如载波或者其它传输机制的经调制的数据信号中的其他数据,并且包括任何信息传递介质。术语“经调制的数据信号”意指使其特征中的一个或多个以将信息编码在信号中的这样的方式设置或者改变的信号。作为示例而非限制,通信介质包括有线介质(诸如有线网络或者直接有线连接)以及无线介质(诸如声学、RF、红外和其它无线介质)。任何上述各项的组合也应被包括在计算机可读介质的范围内。

存储器830和大容量存储装置850是计算机可读存储介质的示例。取决于计算装置的准确配置和类型,存储器830可以是易失性(例如,RAM)、非易失性(例如,ROM、闪存……)或者是两者的某种组合。作为示例,包括诸如在启动期间在计算机802内的元件之间传递信息的基本例程的基本输入/输出系统(BIOS)可以被存储在非易失性存储器中,而易失性存储器可以用作外部高速缓冲存储器,除其他事物外,以支持由(多个)处理器820进行的处理。

大容量存储装置850包括可移除/非可移除、易失性/非易失性计算机存储介质以相对于存储器830用于大量数据的存储。例如,大容量存储装置850包括但不限于一个或多个设备,诸如磁盘驱动器或者光学盘驱动器、软盘驱动器、闪存、固态驱动器或者记忆棒。

存储器830和大容量存储装置850可以包括或者在其中已经存储了操作系统860、一个或多个应用862、一个或多个程序模块864、和数据866。操作系统860用于控制和分配计算机802的资源。应用862包括系统和应用软件中的一个或两者,并且可以通过存储在存储器830和/或大容量存储装置850中的查询模块864和数据866利用由操作系统860进行的资源管理来执行一个或多个动作。因此,应用862可以将通用计算机802转变为根据由此提供的逻辑的专用机器。

所要求保护的主题的全部或者部分可以使用标准编程和/或工程技术来实现以产生软件、固件、硬件或者其任何组合以控制计算机来实现所公开的功能。通过示例而非限制,搜索建议系统100或者其部分可以是应用862或者组成应用862的一部分,并且包括存储在存储器和/或大容量存储装置850中的一个或多个模块864和数据866,模块864和数据866的功能在由一个或多个处理器820执行时可以被实现。

根据一个具体实施例,(多个)处理器820可以对应于片上系统(SOC)或者类似架构,包括或者换句话说集成单个集成电路基板上的硬件和软件两者。这里,(多个)处理器820可以包括,除其他事物外,至少类似于(多个)处理器820和存储器830的一个或多个处理器以及存储器。常规的处理器包括最小量的硬件和软件并且广泛地依赖于外部硬件和软件。相反,处理器的SOC实现方式更强大,因为其在其中嵌入使能最少或不依赖于外部硬件和软件的特定功能的硬件和软件。例如,搜索建议系统100和/或相关联的功能可以被嵌入在SOC架构中的硬件内。

计算机802还包括一个或多个接口组件870,其通信地耦合到系统总线840并且支持与计算机802的交互。作为示例,接口组件870可以是端口(例如串行、并行、PCMCIA、USB、火线……)或者接口卡(例如,声音、视频……)等。在一个示例实现方式中,接口组件870可以被实施为用户输入/输出接口,以使得用户能够例如通过一个或多个输入设备(例如,诸如鼠标的指点设备、轨迹球、触笔、触摸垫、键盘、麦克风、操纵杆、游戏垫、卫星碟、扫描仪、相机、其它计算机……),通过一个或多个手势或者语音输入,将命令和信息输入到计算机802。在另一示例实现方式中,接口组件870可以被实施为输出外围接口以将输出提供到,除其他事物外,显示器(例如,LCD、LED、等离子……)、扬声器、打印机和/或其它计算机。此外,接口组件870可以被实施为网络接口,以使能诸如通过有线或者无线通信链路的与其他计算设备(未示出)的通信。

上文已描述的内容包括所要求保护的主题的多个方面的示例。当然,出于描述所要求保护的主题的目的,不可能描述组件或者方法的每一种可想到的组合,但是本领域普通技术人员可以认识到,所公开的主题的许多进一步的组合和排列是可能的。因此,所公开的主题旨在涵盖落入所附权利要求的精神和范围内的所有这样的改变、修改和变型。

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