首页> 中国专利> 可扩展搜索项建议引擎

可扩展搜索项建议引擎

摘要

随着输入字符,计算设备的搜索项建议引擎接收用户数据的字符。用户数据是待提供给多个应用中的一个以搜索搜索项的搜索项的至少一部分。从一个应用接收多个建议源的指示,并且基于接收的字符从多个建议源获得一个或多个建议的搜索项。也可以基于针对接收的字符的一个或多个语言替选从多个建议源获得一个或多个建议的搜索项。将一个或多个建议的搜索项组合为建议的搜索项的组合的集合,并且将建议的搜索项的组合的集合返回到用于对用户呈现的搜索用户界面。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-07-15

    专利权的转移 IPC(主分类):G06F17/30 变更前: 变更后: 登记生效日:20150625 申请日:20111116

    专利申请权、专利权的转移

  • 2015-06-17

    授权

    授权

  • 2012-06-06

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20111116

    实质审查的生效

  • 2012-04-25

    公开

    公开

说明书

背景技术

随着计算机已经变得日益平凡,已经变得对用户可用的电子数据的量已大大增长。虽然能够对这些大量电子数据进行访问可能对于用户十分有益,但并非没有问题。一个这种问题是用户可能有时难以找寻他们正查找的特定电子数据。例如,用户可能遭遇这样的情况:他们不确定他们查找的东西的具体名称或正确写法。归因于这种不确定性不能够找寻他们正查找的东西可能对用户来说是一种挫败体验。

发明内容

提供本发明内容以通过简化形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容不意图标识所要求保护的主题内容的关键特征或必要特征,也不意图用于限制所要求的主题内容的范围。

根据一个或多个方面,随着输入字符,计算设备的搜索项建议引擎接收用户数据的字符。所述用户数据是待提供给应用以搜索搜索项的所述搜索项的至少一部分。从应用接收多个建议源的指示,并且基于接收的字符从多个建议源中的两个或更多个获得一个或多个建议的搜索项。将一个或多个建议的搜索项组合为建议的搜索项的组合的集合,并且将建议的搜索项的组合的集合返回到用于对用户呈现的搜索用户界面。

根据一个或多个方面,随着输入字符,接收用户数据的字符。所述用户数据是待提供给应用以搜索搜索项的所述搜索项的至少一部分。确定用于所述字符的一个或多个语言替选,并且将所述字符和所述一个或多个语言替选提供给建议源。从所述建议源接收基于所述一个或多个语言替选的一个或多个建议的搜索项,并且将所述一个或多个建议的搜索项返回到用于显示的搜索用户界面。

附图说明

相同标号贯穿附图用于指代相似特征。

图1示出根据一个或多个实施例的实现可扩展搜索项建议引擎的示例系统。

图2是示出根据一个或多个实施例的使用可扩展搜索项建议引擎的示例系统的框图。

图3示出根据一个或多个实施例的显示建议的搜索项的示例屏幕显示。

图4是示出根据一个或多个实施例的用于生成建议的搜索项的组合的集合的示例过程的流程图。

图5是示出根据一个或多个实施例的用于基于语言替选生成建议的搜索项的示例过程的流程图。

图6示出根据一个或多个实施例的可以被配置为实现可扩展搜索项建议引擎的示例计算设备。

具体实施方式

在此讨论可扩展搜索项建议引擎。搜索项建议引擎接收作为搜索项的至少一部分输入到搜索用户界面(UI)的用户数据的字符。随着接收用户数据的字符,搜索项建议引擎从多个不同的建议源获得建议的搜索项。可以使用各个不同的建议源,并且被搜索的应用可以指定使用哪些建议源。搜索项建议引擎将从不同源获得的建议的搜索项合并到建议的搜索项的组合的集合,并且将建议的搜索项的该组合的集合提供给用于对用户呈现的搜索UI。此外,搜索项建议引擎可以获得针对已经输入的用户数据的字符的各个语言替选,例如包括不同符号或字符(例如用于东亚语言)的替选、以及包括不同字母表(例如拉丁字母表、西里尔字母表等)中的搜索项的替选。搜索项建议引擎可以然后基于获得的语言替选从一个或多个不同的多个建议源获得建议的搜索项。

图1示出根据一个或多个实施例的实现可扩展搜索项建议引擎的示例系统100。系统100包括可以可选地经由网络106与一个或多个(x)其它设备104(1)、……、104(m)通信的计算设备102。网络106可以是各种不同的网络,包括因特网、局域网(LAN)、公共电话或其它电话网络、内部网、其它公共和/或私有网络、其组合等。计算设备102可以是各种不同类型的设备,例如桌面计算机、笔记本或平板计算机、笔记本或膝上计算机、服务器计算机、移动站、娱乐设备、通信地耦合到显示设备的机顶盒、电视、蜂窝或其它无线电话、游戏控制台、汽车计算机等。此外,虽然示出为单个设备102,但应注意,计算设备102的组件或模块可以实现为多个设备的系统,其中,所述组件或模块分布在系统中的不同设备上。

设备104可以是能够与计算设备102通信的各种不同的计算设备。计算设备102可以可选地访问设备104中的一个或多个以获得各种信息,如下更详细地描述。与计算设备102的讨论相似,设备104可以是各种不同类型的设备。设备104可以是与计算设备102相同类型或替换地不同类型的设备。在系统100中,计算设备102示出为经由网络106与设备104通信。替换地,计算设备102可以经由其它类型的通信机制或连接(例如各种有线和/或无线连接(例如通用串行总线(USB)连接、无线USB连接、蓝牙连接、IEEE1394连接等))与设备104通信。

计算设备102包括操作系统110和一个或多个应用112。操作系统110管理计算设备102上的应用112的启动和运行。应用112中的每一个可以是各种不同类型的应用,例如生产力应用(例如电子邮件应用、文字处理应用、表单应用、数据库应用等)、娱乐应用(例如游戏应用、音频和/或视频回放应用等)、社交联网应用等。应用112可以本地地访问数据,访问计算设备102上(或耦合到计算设备102的存储设备上)的数据,而不是经由网络106访问设备104上的数据。例如,应用112可以是本地地访问数据的文字处理应用。除了或替代地替换本地地访问数据,应用可以经由网络106访问一个或多个设备104上的数据。例如,应用112可以是用于提供电影服务的设备104的界面应用,允许计算设备102的用户经由该应用112访问来自设备104的电影。

应用112允许用户搜索他们访问的各种数据。用户可以经由特定于特定应用112的或替代地由多个应用112使用的搜索UI输入搜索项(例如一个或多个字符、文字、符号等)。被搜索的应用112返回匹配搜索项的数据以便显示或另外呈现给用户。

操作系统110包括输入模块114、显示模块116和可扩展搜索项建议模块118。虽然可以替代地通过硬件实现操作系统110的至少部分,但典型地通过软件和/或固件实现操作系统110。

输入模块114从计算设备102的用户接收用户输入。可以通过各种不同方式,例如通过按设备102的键区或键盘的一个或多个键,按设备102的控制器(例如远程控制设备、鼠标、轨迹板等)的一个或多个键,按设备102的触摸板或触摸屏的特定部分,在设备102的触摸板或触摸屏上作出特定姿势,和/或在设备102的控制器(例如远程控制设备、鼠标、轨迹板等)上作出特定姿势来提供用户输入。也可以经由对设备102的其它物理反馈输入(例如轻拍设备102的任何部分、可以由设备102的运动检测组件识别的动作(例如摇晃设备102,旋转设备102等)等)提供用户输入。也可以通过其它方式(例如经由对麦克风的可听输入,经由图像捕获设备观测的手或其它身体部分的运动等)提供用户输入。这些用户输入允许用户例如通过输入特定字符或符号、选择特定按钮或菜单选项、拖动和放下各个描述或图像等与计算设备102交互。

显示模块116生成、管理和/或输出用于计算设备102的屏幕的显示。该显示可以包括各种信息,例如应用112提供的信息、可扩展搜索项建议模块118或操作系统110的其它模块提供的信息等。对用户显示的信息可以包括输入模块114接收的用户输入。可以通过各种不同方式(例如使用液晶显示器(LCD)技术、等离子屏幕技术、图像投影技术等)实现在其上显示模块116显示信息的屏幕。可以包括屏幕作为计算设备102的一部分,或替代地显示模块116可以生成输出到包括一个或多个屏幕的一个或多个其它显示设备的一个或多个信号。虽然在此的讨论指代在一个或多个屏幕上显示信息,但应理解,可以替代地由显示模块116通过(例如经由一个或多个扬声器可听地)其它方式对用户呈现信息。

可扩展搜索项建议模块118提供一个或多个建议的搜索项以协助系统100的用户。当用户期望搜索应用(例如应用112)时,用户输入构成搜索项的至少一部分的字符。可扩展搜索项建议模块118随着用户输入这些字符而接收它们,基于接收的字符自动地识别一个或多个建议的搜索项,并且返回所述一个或多个建议的搜索项以便呈现(例如显示)给用户。可扩展搜索项建议模块118可以从可以位于计算设备102和/或另一设备104上的多个不同的源获得建议的搜索项。

此外,可扩展搜索项建议模块118可以影响生成所接收字符的一个或多个语言替选的语言替选生成模块。这些语言替选是可以与接收的字符对应的不同符号或字符,例如不同东亚语言字符。这些语言替选也可以是字符到不同字母表(例如拉丁字母表、西里尔字母表等)的翻译。

搜索项建议模块118是可扩展的,在于:不同的建议源可以用于建议的搜索项,并且用于建议的搜索项的语言替选可以被使用。不同的应用和/或用户可以选择待用于建议的搜索项的不同的建议源以及用于建议的搜索项的语言替选是否将被使用。

图2是示出根据一个或多个实施例的使用可扩展搜索项建议引擎的示例系统200的框图。系统200包括可扩展搜索项建议模块或引擎202、搜索UI模块204、应用206、语言替选生成模块208和多个建议源220、222、224、226和228。应用206也可以是建议源,如以下更详细讨论。可扩展搜索项建议模块202可以是例如图1的可扩展搜索项建议模块118。应用206可以是例如图1的应用112、图1的设备104中的一个上运行的应用等。

在一个或多个实施例中,搜索UI模块204、应用206和可扩展搜索项建议模块202在相同计算设备(例如图1的计算设备102)上。替代地,可以在不同的计算设备上实现搜索UI模块204、应用206和可扩展搜索项建议模块202中的一个或多个。例如,可以在一个计算设备上实现可扩展搜索项建议模块202,可以在另一计算设备上实现搜索UI模块204,并且可以在又一计算设备上实现应用206。

搜索UI模块204将搜索用户界面提供给用户,(例如经由图1的输入模块114)接收用户输入,并且还(例如经由图1的显示模块116)显示或另外呈现建议的搜索项以及其它信息。用户输入表示搜索项的用户数据,典型地一次一个字符。字符可以是字母、数字、其它符号等。随着输入字符,搜索UI模块204将用户数据的字符提供给可扩展搜索项建议模块202。可扩展搜索项建议模块202从各个不同的建议源(例如建议源220-228、应用206)中的一个或多个获得建议的搜索项。可扩展搜索项建议模块202合并或组合来自不同的建议源的建议的搜索项,以生成建议的搜索项的组合的集合,并且将建议的搜索项的组合的集合返回到搜索UI模块204。获得建议的搜索项并且返回建议的搜索项的组合的集合的该过程响应于用户输入的每一字符被执行,并且可以随着输入字符产生建议的搜索项的不同的组合的集合。

在此讨论中,可扩展搜索项建议模块202被讨论为将建议的搜索项的组合的集合返回到用于对用户呈现的搜索UI模块204,并且这些搜索项从各种不同的建议源(例如建议源220-228、应用206)中的一个或多个被获得。然而,应注意,建议源典型地无需(然而替代地可以需要)返回建议的搜索项。因此,一个或多个建议源不返回建议的搜索项的情况可能出现。如果没有建议源返回至少一个建议的搜索项,则可扩展搜索项建议模块202不将建议的搜索项返回到用于对用户呈现的UI模块204。

图3示出根据一个或多个实施例的显示建议的搜索项的示例屏幕显示302。屏幕显示202包括工具栏(或任务栏)304。工具栏304可以包括各种不同信息,例如当前时间(示为10:10 AM)。数据项字段306提供用户可以输入搜索项的字符并且使得这些字符被显示的位置。在所示示例中,用户已经输入字符“He”。

还显示搜索按钮308。用户可以通过各种不同方式(例如经由图1的输入模块114)选择搜索按钮308,例如通过以记录笔或手指触摸搜索按钮308,在搜索按钮308上操控指针并且按光标控制设备(例如鼠标)的按钮,按键盘的特定键等。响应于搜索按钮308的用户选择,将数据项字段306中当前输入的字符发送到用于搜索的应用。可以通过不同方式,例如作为当前有效的应用或用户选择的另一应用,确定向其发送搜索项的应用。

屏幕显示302还显示一个或多个建议的搜索项作为建议列表310。建议列表310包括(例如图2的可扩展搜索项建议模块202生成的)搜索项的组合的集合中的建议的搜索项。在所示示例中,用户已经输入字符“He”,并且搜索项的组合的集合是Hello, Heathrow Airport, Henderson Nevada, Helium, Heroes, Hercules, Health Benefits和Healthy Lifestyles。

用户然后可以选择建议列表310中的建议的搜索项中的一个,并且作为响应在数据项字段306中输入选择的建议的搜索项。例如,如果从建议列表310选择“Helium”,则“Helium”替代数据项字段306中的“He”。用户可以通过各种不同方式(例如经由图1的输入模块114)选择建议列表310中的建议的搜索项中的一个,例如以记录笔或手指触摸建议的搜索项、在建议的搜索项上操控指针并且按光标控制设备(例如鼠标)的按钮等方式。

应注意,数据项字段306和搜索按钮308的位置是示例,并且可以在屏幕显示302上任何地方显示数据项字段306和搜索按钮308。例如,可以在屏幕显示302的顶部、沿着屏幕显示302的左侧或右侧、在屏幕显示302的中心、作为菜单栏的部分、作为图标栏或停靠托盘的部分、在待搜索的应用(例如图1的应用112之一)的窗口内等显示数据项字段306和搜索按钮308。此外,建议列表310被示出为在数据项字段306之上并且邻近数据项字段306。然而,应理解,建议列表310的位置是示例,可以在屏幕显示302上的任何地方显示建议列表310(尽管典型地以便不覆盖数据项字段306或搜索按钮308)。例如,可以在屏幕显示302的顶部、沿着屏幕显示302的左侧或右侧、在屏幕显示302的中心、在不邻近数据项字段306的位置中,至少部分地在待搜索的应用的窗口内等显示建议列表310。

返回图2,在系统200中,搜索UI模块204和应用206被示出为分离的组件。搜索UI模块204可以是将搜索用户界面提供给各种不同应用的系统级搜索用户界面模块。替代地,搜索UI模块204可以是将搜索用户界面提供给单个应用的应用特定搜索模块。在这些情况下,搜索UI模块204可以被包括为该单个应用(例如应用206)的模块。

应用206是待搜索搜索项的应用。多个应用可以可选地针对搜索项进行搜索,并且在这些情况下,应用206被包括为这些多个应用中的一个。可以通过不同方式标识待搜索搜索项的特定应用。在搜索UI模块204被包括为特定应用的部分的一个或多个实施例中,那么包括搜索UI模块的特定应用是待搜索搜索项的应用。在其它实施例中,可以通过不同方式(例如搜索UI模块204提供待搜索搜索项的应用的指示,或当前有效的应用是待搜索搜索项的应用)标识待搜索搜索项的应用。当前有效的应用指代在前台中当前运行的应用并且是用户可以与其交互的应用(例如图1的应用112(除了操作系统之外的应用)中的一个)。虽然多个应用可以同时在计算设备上运行,但在任何给定时间仅一个是当前有效的应用。可以从例如计算设备的操作系统获得当前有效的应用的标识符。

可扩展搜索项建议模块202包括配置模块240、搜索项收集模块242和搜索项合并模块244。配置模块240从指定哪些建议源可扩展搜索项建议模块202待用于搜索项建议的应用206(或替代地从另一组件或模块,例如搜索UI模块204)接收指示。不同的应用可以指定不同的建议源,并且相同的应用可以在不同的时间指定不同的建议源。因此,配置模块240接收待使用哪些建议源的指示,并且将该指示提供给搜索项收集模块242。配置模块240也可以被配置有待使用哪些建议源的默认指示。如果从应用206未接收到待使用哪些建议源的指示,则将待使用哪些建议源的默认指示提供给搜索项收集模块242。配置模块240也可以从如下更详细地讨论的获得建议的搜索项中待使用的搜索用户界面模块204和/或应用206接收附加信息。

搜索项收集模块242从建议源中的一个或多个获得建议的搜索项。从其获得建议的搜索项的一个或多个建议源是被指示为待使用的建议源的建议源。搜索项收集模块242将从搜索UI模块204接收的用户数据的字符提供给从其获得建议的搜索项的每一建议源。在示例系统200中,从其可以获得建议的搜索项的一个或多个建议源包括本地文件源220、每用户搜索历史源222、群搜索历史源224、独立服务提供商源226、自然语言源228和应用206。这些建议源中的每一个基于从搜索项收集模块242接收的用户数据的字符来标识、生成或另外获得建议的搜索项。

本地文件源220是基于设备(例如实现可扩展搜索项建议模块202和/或搜索UI模块204的设备)的本地存储设备上存储的文件提供零个或更多个建议的搜索项的一个或多个组件或模块。这些本地存储设备可以被包括在设备中和/或(例如经由USB或其它连接)连接到设备,并且可以包括各种不同类型的存储设备(例如一个或多个磁盘、一个或多个光盘、闪存设备等)。

本地文件源220分析与本地存储设备上存储的文件关联的各种属性或元数据中的一个或多个,并且基于该分析确定一个或多个建议的搜索项。所述各种属性可以是例如文件的名称、其中存储文件的文件夹的名称等。描述文件的各种元数据可以被存储为文件的部分或另外与文件关联并且由本地文件源220访问,并且该元数据可以根据文件类型改变。例如,存储歌曲的音乐文件可以具有作为元数据的歌曲的录音艺术家的姓名、歌曲的名称、组成录音艺术家的各个乐队成员的姓名等。通过另一示例的方式,电影文件可以具有作为元数据的电影的标题、电影制作者的名称、电影中的男演员和/或女演员的姓名等。通过又一示例的方式,存储电子书文件的文件可以具有作为元数据的书的标题、书的出版商、书中一个或多个主要人物的姓名等。

作为零个或更多个建议的搜索项,本地文件源220可以通过各种不同的方式确定哪些属性和/或元数据(如果有的话)匹配接收的字符。如果文件的特定属性和/或特定元数据以接收的字符开始,则文件可以匹配接收的字符。如果文件的特定属性和/或特定元数据的多个字符序列(例如由在特定语言中可以不定义为文字的标点符号或空格分离的多个字符的任何其它序列或文字)中的一个以接收的字符开始,则文件也可以匹配接收的字符。例如,本地文件源220可以标识具有开始于或包括以接收的字符(从搜索项收集模块242接收的用户数据的字符)开始的文字的文件名称的所有文件、具有包括开始于或包括以接收的字符开始的文字的录音艺术家姓名的元数据的所有文件、具有开始于或包括以接收的字符开始的文字的电影标题的所有文件等。可以通过不同的方式(例如(例如经由配置模块240)从应用206接收,从实现可扩展搜索项建议模块202的设备的用户接收,在本地文件源220中预先配置,从另一组件或模块接收等),标识待检查以确定与接收的字符的匹配的元数据或特定属性。

在一个或多个实施例中,在确定零个或更多个建议的搜索项中,本地文件源220检查每一本地存储设备上的所有文件。替代地,本地文件源220可以检查本地存储设备上的文件中的仅一些文件,例如特定类型的文件(例如具有特定文件扩展或被分类为特定类型的文件的文件),仅检查特定文件夹或目录中的文件(例如仅电影文件目录中的文件、仅音乐文件目录中的文件等)等。本地文件源220可以被预先配置要检查本地存储设备上的哪些文件,或替代地可以接收或另外获得要检查哪些文件的指示。可以通过不同方式(例如从应用206(例如经由配置模块240),从实现可扩展搜索项建议模块202的设备的用户等)接收或另外获得要检查哪些文件的指示。

作为建议的搜索项,本地文件源220将匹配接收的字符的属性和/或元数据(如果有的话)返回到搜索项收集模块242。此外,在一个或多个实施例中,本地文件源220将本地文件源220返回的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。可以通过不同方式确定该排名。在一个或多个实施例中,本地文件源220确定有多少文件具有匹配接收的字符的相同属性或元数据,并且基于出现的频率排名该属性或元数据(例如从最大匹配到最小匹配的排序)。例如,如果接收的字符是“He”,八个文件具有包括“Hercules”的元数据,五个文件具有包括“Helium”的元数据,两个文件具有包括“Heroes”的元数据,则,本地文件源220提供的建议的搜索项按(基于出现的频率的)它们的排名的排序是:Hercules, Helium, Heroes。

每用户搜索历史源222是基于设备(例如实现可扩展搜索项建议模块202和/或搜索UI模块204的设备)的用户输入的搜索项的历史提供零个或更多个建议的搜索项的一个或多个组件或模块。当用户(例如通过选择图1的搜索按钮308)输入搜索项时,搜索UI模块204将搜索项提供给可扩展搜索项建议模块202。搜索UI模块204也可以将搜索项提供给应用206,或替代地依赖可扩展搜索项建议模块202以将搜索项提供给应用206。可扩展搜索项建议模块202将搜索项提供给每用户搜索历史源222,其保存搜索项的记录、在输入搜索项的时间设备的当前用户、以及被搜索该搜索项的应用。

每用户搜索历史源222可以从设备的操作系统或另外地方(例如从可扩展搜索项建议模块202)获得在任何特定时间(例如当输入搜索项时,当输入一个或多个字符时等)设备的用户的指示(例如签署到设备的用户的指示)。相似地,每用户搜索历史源222可以从设备的操作系统或另外地方(例如从可扩展搜索项建议模块202)获得应用(例如被搜索的应用、当前有效的应用等)的指示。

为了确定零个或更多个建议的搜索项,每用户搜索历史源222获得设备的当前用户的指示和待搜索搜索项的当前应用的指示。每用户搜索历史源222比较接收的字符(从搜索项收集模块242接收的用户数据的字符)与当前用户先前输入的搜索项以便在待搜索的当前应用中搜索,并且可以通过各种不同的方式标识匹配先前搜索项。如果至少先前搜索项的开始字符是接收的字符,则先前搜索项可以匹配接收的字符。如果先前搜索项的多个字符序列(例如由在特定语言中可能未定义为文字的标点符号或空格分离的字符的任何其它序列或文字)中的一个以接收的字符开始,则先前搜索项也可以匹配接收的字符。作为建议的搜索项,每用户搜索历史源222将匹配接收的字符的先前输入的搜索项返回到搜索项收集模块242。

替代地,并非基于用于单个应用的搜索项,每用户搜索历史源222可以跨多个应用操作。在这些情况下,为了确定零个或更多个建议的搜索项,每用户搜索历史源获得设备的当前用户的指示,比较接收的字符与当前用户先前输入的搜索项,并且标识匹配先前搜索项。无需维护搜索特定搜索项的应用的记录,并且无需基于待搜索的当前应用比较接收的字符与搜索项。

此外,在一个或多个实施例中,每用户搜索历史源222对源222提供的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。可以通过不同方式确定该排名。在一个或多个实施例中,每用户搜索历史源222确定多久之前使用匹配的先前搜索项中的每一个,并且以从最近之前使用的到最久之前使用的排序来排名匹配的先前搜索项。在每用户搜索历史源222维护的搜索项的记录中,每用户搜索历史源222可以包括何时使用每个搜索项的指示(例如何时输入搜索项的时间戳),并且该记录可以被访问以确定多久之前使用匹配的先前搜索项中的每一个。在其它实施例中,每用户搜索历史源222(例如基于每用户历史源222维护的搜索项的记录)确定多频繁地使用匹配的先前搜索项中的每一个,并且以从最频繁地使用到最不频繁地使用的排序来排名匹配的先前搜索项。

此外,在一个或多个实施例中,应用206可以指定对于其每用户搜索历史源222将要维护搜索项的记录的不同的范围。应用206(例如经由配置模块240)指定不同的范围,并且当输入搜索项时还指定用于输入的搜索项的范围。为了确定零个或更多个建议的搜索项,每用户搜索历史源222(例如经由配置模块240从应用206)获得应用206的当前范围的指示,并且标识用于仅该范围的匹配的先前搜索项。

应用206可以通过其期望的任何方式定义范围。例如,娱乐应用可以将一个范围定义为音频回放,另一为音频/视频回放。如果应用206的当前范围是例如音频回放,则每用户搜索历史源222标识用于音频回放但不用于音频/视频回放的匹配的先前搜索项。通过另一示例的方式,电子邮件应用可以将一个范围定义为电子邮件消息,另一范围为联系人,另一范围为日历条目。如果应用206的当前范围是例如联系人,则每用户搜索历史源222标识用于联系人但不用于电子邮件消息或日历条目的匹配的先前搜索项。每用户搜索历史源222无需关心为什么存在用于应用的不同的范围或应用将这些不同的范围用于什么。此外,每用户搜索历史源222可以仅维护基于用于该搜索项的范围的搜索项的记录。

群搜索历史源224是不考虑设备的用户的基于搜索项的历史提供零个或更多个建议的搜索项的一个或多个组件或模块。群搜索历史源224与每用户搜索历史源222相似,但不考虑设备的用户来操作。群搜索历史源224维护输入的搜索项的记录和被搜索该搜索项的应用。为了确定零个或更多个建议的搜索项,群搜索历史源224获得待搜索的应用的指示,比较接收的字符与该应用先前被搜索的搜索项,并且标识匹配的先前搜索项。无需维护设备的用户的记录,并且无需基于设备的当前用户比较接收的字符与先前搜索的搜索项。作为建议的搜索项,群搜索历史源224将匹配接收的字符的先前输入的搜索项返回到搜索项收集模块242。

替代地,并非基于用于单个应用的搜索项,群搜索历史源224可以跨多个应用操作。在这些情况下,为了确定零个或更多个建议的搜索项,群搜索历史源224比较接收的字符与在设备处先前输入的搜索项,并且标识匹配的先前搜索项。无需维护被搜索特定搜索项的应用的记录,并且无需维护设备的用户的记录。相似地,无需基于设备的当前用户或待搜索的当前应用比较接收的字符与先前搜索的搜索项。

此外,在一个或多个实施例中,群搜索历史源224对群搜索历史源224提供的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。与关于每用户搜索历史源222的以上讨论类似,可以通过不同方式确定该排名。

此外,在一个或多个实施例中,应用206可以指定对于其群搜索历史源224将要维护搜索项的记录的不同的范围。与关于每用户搜索历史源222以上的讨论类似,为了确定零个或更多个建议的搜索项,群搜索历史源224获得应用206的当前范围的指示,并且仅对于该范围标识先前搜索的匹配搜索项。

独立服务提供商源226是独立于实现可扩展搜索项建议模块202和/或搜索UI模块204的计算设备提供零个或更多个建议的搜索项的一个或多个组件或模块。独立服务提供商源206可以是远程设备或服务,例如提供建议的搜索项的通过因特网访问的服务。搜索项收集模块242将用户数据的字符提供给独立服务提供商源226,并且从独立服务提供商源226接收零个或更多个建议的搜索项。独立服务提供商源226确定其中独立服务提供商源226基于这些字符确定零个或更多个建议的搜索项的方式。搜索项收集模块242无需具有(并且典型地没有)独立服务提供商源226如何确定零个或更多个建议的搜索项的知识。多个这些独立服务提供商源226可以可用于搜索项收集模块242,并且模块242可以通过使用哪个或哪些独立服务提供商源226的指示被预先配置,或替代地可以例如从应用206(例如经由配置模块240)、从实现可扩展搜索项建议模块202的设备的用户等接收或另外获得使用哪个或哪些独立服务提供商源226的指示。

此外,在一个或多个实施例中,独立服务提供商源226对独立服务提供商源226提供的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。独立服务提供商源226自身确定其中独立服务提供商源226确定排名的方式——搜索项收集模块242无需具有(并且典型地没有)独立服务提供商源226如何确定排名的知识。

自然语言源228是基于文字的字典提供零个或更多个建议的搜索项的一个或多个组件或模块。自然语言源228包括文字(例如英语语言或另一语言中通常使用的文字、英语语言或其它语言中的特定领域中通常使用的文字等)的特定字典,或能够对其访问。自然语言源228比较接收的字符(从搜索项收集模块242接收的用户数据的字符)与该字典中的语言,并且作为零个或更多个建议的搜索项返回匹配(例如开始于)接收的字符的文字。多个这些自然语言源228可以对于搜索项收集模块242可用,并且模块242可以通过使用哪个或哪些自然语言源228的指示被预先配置,或替代地可以例如从应用206(例如经由配置模块240)、从实现本地文件源220的设备的用户等接收或另外获得使用哪个或哪些自然语言源228的指示。

此外,在一个或多个实施例中,自然语言源228对自然语言源228提供的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。可以通过不同方式确定该排名。例如,自然语言源228可以维护字典中的每个文字多常用的指示,并且从最常用到最不常用的排序排名建议的搜索项。通过另一示例的方式,自然语言源228可以基于文字的大小(例如关于文字中的字符或音节的数量)排名建议的搜索项,按从最小文字到最长文字的排序排名建议的搜索项。

此外,应用206自身可以是建议源。与独立服务提供商源226相似,搜索项收集模块242将用户数据的字符提供给应用206,并且从应用206接收零个或更多个建议的搜索项。应用206自身确定其中应用206基于这些字符确定零个或更多个建议的搜索项的方式——搜索项收集模块242无需具有(并且典型地没有)应用206如何确定零个或更多个建议的搜索项的知识。虽然应用206可以是建议源,但应用206无需是建议源。反而,应用206可以依靠其它建议源220-228中的一个或多个,并且无需自身生成建议的搜索项。

此外,在一个或多个实施例中,应用206对应用206提供的建议的搜索项进行排名。建议的搜索项的该排名是从最高排名到最低排名的搜索项的排序。应用206确定其中应用206确定排名的方式——搜索项收集模块242无需具有(并且典型地没有)应用206如何确定排名的知识。

搜索项合并模块244将搜索项收集模块242获得的建议的搜索项合并或组合为建议的搜索项的组合的集合,并且将建议的搜索项的组合的集合提供给用于对用户显示的搜索UI模块204。组合的列表是例如图3的建议列表310。在一个或多个实施例中,搜索项合并模块244通过按(基于从其获得建议的搜索项的建议源的)特定排序布置获得的建议的搜索项来生成建议的搜索项的组合的集合。该排序指示哪些建议源将要使得它们的建议的搜索项比所述其它建议源在组合的列表中更早(例如在图3的建议列表310中更高)被包括。搜索项合并模块244可以通过使用的排序被配置,或替代地可以在另外地方(例如从应用206、从另一模块或设备等)获得排序。搜索项收集模块242可以标识从哪个建议源获得哪些建议的搜索项,或替代地建议源可以通过其它方式(例如从建议源自身接收)被标识。

在一个或多个实施例中,其中从其获得建议的搜索项的建议源是本地文件源222、每用户搜索历史源222和应用206,建议的搜索项的排序是从每用户搜索历史源222获得的搜索项,随后是来自本地文件源220的建议的搜索项,随后是来自应用206的建议的搜索项。例如,如果从本地文件源220获得建议的搜索项“Hello”、“Heathrow Airport”和“Henderson Nevada”,则从每用户搜索历史源222获得建议的搜索项“Helium”、“Heroes”和“Hercules”,并且从应用206获得建议的搜索项“Health Benefits”和“Healthy Lifestyles”,然后组合的列表中的建议的搜索项的排序将是:“Helium”、“Heroes”、“Hercules”、“Hello”、“Heathrow Airport”、“Henderson Nevada”、“Health Benefits”和“Healthy Lifestyles”。

在一个或多个实施例中,搜索项合并模块244还在生成建议的搜索项的组合的集合时移除复制的建议的搜索项。如果从多个建议源获得相同的建议的搜索项,则在组合的集合中包括该搜索项仅一次。可以通过不同的方式确定将要移除建议的搜索项的哪些副本。在一个或多个实施例中,根据上述建议源的排序第一出现的建议的搜索项被保持,并且移除建议的搜索项的其它出现。例如,继续先前示例,如果相同建议的搜索项待被包括在来自本地文件源220、每用户搜索历史源222和应用206中的每一个建议的搜索项中,则该建议的搜索项被保持为从每用户搜索历史源222获得的建议的搜索项中的一个,并且从从本地文件源220和应用206获得的建议的搜索项被移除。

对于从每一建议源获得的建议的搜索项,来自该建议源的建议的搜索项的组合的集合中的排序基于从该建议源接收的那些建议的搜索项的排名。在一个或多个实施例中,建议源按建议的搜索项待被包括在组合的集合中的排序(基于建议源使用的排名机制)返回建议的搜索项。替代地,可以通过不同方式,例如按字母顺序地、随机地、根据其它规则或准则等,确定来自特定建议源的建议的搜索项的组合的集合中的排序。

应注意,建议的搜索项的不同的建议源可以具有不同时延,其指代搜索项收集模块242花费多少时间从那些不同的建议源接收建议的搜索项。建议源的时延可以是各个因素的结果,所述因素例如是否从与实现可扩展搜索项建议模块202或远程设备相同的设备获得建议的搜索项,是否由建议源执行其它请求或操作、实现建议源的方式等。

搜索项模块244考虑这些潜在地不同的时延。在一个或多个实施例中,搜索项模块244等待阈值时间量。该阈值时间量可以改变,并且可以例如在100毫秒到1秒的量级。搜索项合并模块244可以通过要使用的阈值时间量被配置,或替代地可以在另外地方(例如从应用206、从另一模块或设备等)获得阈值时间量。将阈值时间量内接收的建议的搜索项提供给搜索UI模块204,并且当接收它们时将从其它建议源随后接收的建议的搜索项提供给搜索UI模块204。

此外,在一个或多个实施例中,搜索项合并模块244使用上述基于建议源的建议的搜索项的排序。如果在阈值时间量内未接收到来自特定建议源的建议的搜索项,则将从在排序中较早的建议源接收的建议的搜索项返回给搜索UI模块204,但不返回从在排序中较晚的建议源接收的建议的搜索项,直到接收到来自该特定建议源的建议的搜索项。例如,假设要从本地文件源220、每用户搜索历史源222、独立服务提供商源226和应用206获得建议的搜索项,并且在组合的集合中的建议的搜索项的排序是:从每用户搜索历史源222获得的搜索项、随后是来自本地文件源220的建议的搜索项、随后是来自独立服务提供商源226的建议的搜索项、随后是来自应用206的建议的搜索项。如果在阈值时间量内从源220、源222和应用206接收搜索项,但在阈值时间量内未接收到来自源226的搜索项,则将从源220和222接收的搜索项返回到搜索UI模块204作为组合的列表。当随后接收到来自源226的搜索项时,则将来自源226和应用206的搜索项返回到搜索UI模块204作为对组合的列表的添加。作为对组合的列表的添加的部分的建议的搜索项被附加到搜索UI模块204显示的建议的搜索项的列表的末尾,而不是被插入列表的中间。

搜索项模块244可以包括来自不同的建议源的不同数量的建议的搜索项。搜索项合并模块244可以通过来自每一建议源的要包括的建议的搜索项的数量被配置,或替代地可以从另外地方的每一建议源(例如从应用206、从另一模块或设备等)获得要包括的建议的搜索项的数量。如果建议源返回比搜索项模块244待包括在用于该建议源的组合的集合中更少的建议的搜索项,则搜索项模块244可以包括来自其它建议源的附加的建议的搜索项,或替代地仅包括被返回的建议的搜索项。如果包括来自其它建议源的附加的建议的搜索项,则搜索项模块244基于上述建议源添加来自在建议的搜索项的排序中较早的建议源的建议的搜索项。

例如,假设搜索项合并模块244待包括组合的集合中的八个建议的搜索项——来自本地文件源220的三个建议的搜索项和来自每用户搜索历史源222的五个建议的搜索项,并且组合的集合中的建议的搜索项的排序是从每用户搜索历史源222获得的搜索项后随从本地文件源220获得的搜索项。此外,假设每用户搜索历史源222返回八个建议的搜索项,本地文件源220返回两个建议的搜索项。在此情况下,搜索项合并模块244生成包括来自每用户搜索历史源222的六个建议的搜索项、后随来自本地文件源220的两个建议的搜索项的建议的搜索项的组合的集合。

此外,在一个或多个实施例中,每用户搜索历史源222(或替代地其它建议源)维护的信息可以漫游到不同的计算设备。该漫游允许源222维护的每用户历史用于不同的计算设备上的相同的用户。可以通过不同方式漫游源222维护的信息。例如,可以通过仅当该用户登入计算设备和/或另外提供适当的认证(例如用户名称和密码)时允许对信息的访问的安全方式来加密或另外存储源222维护的信息。信息可以存储在另一设备或服务(例如经由图1的网络106访问的设备104)上,并且当用户请求时(例如当用户登入计算设备时,当用户开始输入搜索项的字符时,等)被获取。替代地,信息可以在用户连接到不同的计算设备的便携式设备上(例如闪存设备上)被维护,包括可扩展搜索项建议模块202的设备可以使得信息(例如经由图1的网络106)对其它设备可用,等。

此外,在一个或多个实施例中,在确定零个或更多个建议的搜索项时,建议源中的一个或多个修改接收的字符(从搜索项收集模块242接收的用户数据的字符)。该修改允许例如标识印刷错误。该修改可以包括例如交换字符、添加一个或多个字符、以及移除一个或多个字符。例如,如果接收的字符是“He”,则字母“H”或字母“e”可以与其它字符(例如其它字母)交换,并且关于是否存在基于交换的字符提供的源的任何建议的搜索项进行检查。例如,字母“e”可以与字母“a”交换,并且关于是否存在基于接收的字符“Ha”提供的源的任何建议的搜索项(例如任何先前搜索的以“Ha”开始的搜索项)进行检查。通过另一示例的方式,如果接收的字符是“He”,则可以将另一字母添加到接收的字符的开始、末尾或中间。例如,可以添加字母“t”,产生“Het”、“Hte”或“The”,并且关于是否存在基于“Het”、“Hte”或“The”的接收的字符提供的源的任何建议的搜索项进行检查。通过又一示例的方式,如果接收的字符是“He”,则可以移除字母中的一个。例如,可以移除字母“e”,产生“H”,或可以移除字母“H”,产生字母“E”,并且关于是否存在基于“H”或“E”的接收的字符提供的源的任何建议的搜索项进行检查。

在一个或多个实施例中,仅在没有发现针对接收的字符的建议的搜索项的情况下,建议源才修改接收的字符试图标识零个或更多个建议的搜索项。因此,如果建议源使用接收的字符(没有修改)标识一个或多个建议的搜索项,则不执行接收的字符的修改。此外,在一个或多个实施例中,建议源使用用于指示可以修改多少字符和/或多频繁地修改字符的改变的阈值。例如,可以修改每3字符中的仅1个,可以修改每5个字符中的仅1个,等。

还应注意,修改接收的字符可以产生基于修改的字符的多个建议的搜索项。在这些情况下,可以基于它们与接收的字符的相关性来对多个建议的搜索项进行排名。可以通过不同方式,例如基于键盘的布局、修改的类型等,确定基于相关性的该排名。例如,排名可以是作为最相关的交换的字符、作为下一最相关的移除的字符、以及作为最不相关的添加的字符。通过另一示例的方式,如果不同的交换的字符产生多个建议的搜索项,则键盘的布局可以用于标识哪个字母最靠近接收的字符,并且该字母被排序为最相关的。例如,如果接收的字符是“He”,并且“e”与“a”和“i”交换,并且基于“Ha”和“Hi”的接收字符标识一个或多个建议的搜索项,则因为字母“a”比字母“i”更靠近QWERTY键盘布局上的字母“e”,所以基于“Ha”的接收字符的建议的搜索项将排名高于基于“Hi”的接收字符的建议的搜索项。

还应注意,虽然建议的搜索项在此被讨论为文本搜索项,但建议源中的一个或多个可以返回各种其它内容和/或类型的内容。除了或替代地代替返回的建议的搜索项,搜索UI模块204可以显示或另外呈现该其它内容和/或类型的内容。例如,可以返回并且显示与一个或多个建议的搜索项有关的一个或多个图像,可以返回并且显示与一个或多个建议的搜索项有关的附加的描述文本,可以返回并且回放与一个或多个建议的搜索项有关的音频内容等。

图4是示出根据一个或多个实施例的用于生成建议的搜索项的组合的集合的示例过程400的流程图。可以通过软件、固件、硬件或其组合实现处理400。可扩展搜索项建议模块(例如图1的模块118或图2的模块202)执行过程400。过程400示出为动作的集合,并且不限于对于执行各个动作的操作所示的排序。过程400是用于生成建议的搜索项的组合的集合的示例过程;在此参照不同的图包括生成建议的搜索项的组合的集合的附加讨论。

在过程400中,接收作为搜索项的至少一部分的用户数据的字符(动作402)。用户可以通过上述各种不同的方式输入字符。

接收待使用的建议源的指示(动作404)。可以从待搜索搜索项的应用或如上所述的另外地方接收该指示。

从建议源中的每一个获得零个或更多个建议的搜索项(动作406)。可以在不同时间从不同的建议源接收不同数量的搜索项,如上所述。虽然典型地从建议源中的每一个获得一个或多个建议的搜索项,但应注意,在一些情况下,建议源可以不返回建议的搜索项。

将获得的建议的搜索项组合为建议的搜索项的组合的集合(动作408)。可以基于来自每一不同的建议源的建议的搜索项的特定数量和特定排序来组合获得的建议的搜索项,如上所述。

将建议的搜索项的组合的集合返回到用于呈现的搜索用户界面(动作410)。搜索用户界面可以显示或另外对用户呈现建议的搜索项的该组合的集合,如上所述。

返回图2,系统200还包括语言替选生成模块208,其支持利用特定语言的语言替选获得并且显示建议的搜索项。一些语言,例如东亚语言(例如日语、汉语和韩语)包括与键盘的各个键不对应的大量字符。可以使用多个不同的字母表(例如拉丁或在俄语的情况下的西里尔)表示其它语言(例如俄语)。可扩展搜索项建议模块202支持利用这些语言的语言替选获得建议的搜索项。配置模块240从应用206(或替代地从另一组件或模块,例如搜索UI模块204)接收指定是否使用语言替选生成模块208(以及因此可扩展搜索项建议模块202是否要利用语言替选获得建议的搜索项)的指示。

随着可扩展搜索项建议模块202从搜索UI模块204接收字符,搜索项收集模块242在接收的字符被接收时将其提供给语言替选生成模块208。语言替选生成模块208可以通过各种不同的方式标识用于用户输入的语言替选,并且将这些语言替选返回到搜索项收集模块242。语言替选生成模块208典型地标识用于用户输入的一个或多个语言替选,并且将这些一个或多个语言替选返回到搜索项收集模块242。然而,应注意,语言替选生成模块208典型地无需(然而替代地可以需要)返回语言替选。因此,语言替选生成模块208不标识并且不返回用于特定用户输入的语言替选的情况可能出现。

在一个或多个实施例中,语言替选生成模块208通过将用户输入的字符从一个字母表转译为另一字母表来标识用于用户输入的语言替选。例如,在俄语语言的情况下,如果用户输入是拉丁字母表字符,则语言替选生成模块208将拉丁字母表字符转译为西里尔字母表字符。语言替选生成模块208将(西里尔字母表字符中的)用户输入的翻译返回到搜索项收集模块242作为一个或多个语言替选。

此外,在一个或多个实施例中,语言替选生成模块208标识语音音节可以表示的一个或多个字符。在一些情况下,例如一些东亚语言,为了输入特定字符,用户输入语音音节作为多个拉丁字母表字符。例如,用户可以使用可以与多个不同的汉语字符对应的拉丁字母表字符“bei”输入语音音节。语言替选生成模块208标识可以与特定用户输入对应的零个或更多个不同的字符,并且将这些标识的字符返回到搜索项收集模块242作为语言替选。例如,如果用户输入是“bei”,则语言替选生成模块208标识“bei”可以表示的不同的汉语字符,并且将这些汉语字符返回到搜索项收集模块242作为语言替选。通过另一示例的方式,如果用户输入是“h”,则语言替选生成模块208标识“h”可以表示的不同的汉语字符(其将包括以“h”开始的多个不同的语音音节),并且将这些汉语字符返回到搜索项收集模块242作为语言替选。

语言替选生成模块208可以被配置用于特定语言或替代地用于多个语言。例如,设备(例如实现可扩展搜索项建议模块202和/或搜索UI模块204的设备)的用户、应用206、搜索UI模块204等可以提供标识对于其语言替选生成模块208将要提供替选的语言的配置设置。通过另一示例的方式,系统200中可以包括不同的语言替选生成模块208,每一用于不同的语言(例如一个模块208用于俄语、另一模块208用于汉语、另一模块208用于日语等)。搜索项收集模块242可以根据对于其期望语言替选的(例如设备的用户、应用206、搜索UI模块204等指示的)语言将用户输入提供给这些不同的模块208中的一个或多个。

搜索项收集模块242从语言替选生成模块208接收语言替选,并且将从搜索UI模块204接收的字符和语言替选提供给从其获得建议的搜索项的应用206和建议源220-228中的一个或多个。每一建议源可以然后基于接收的字符、语言替选或接收的字符和语言替选两者确定一个或多个建议的搜索项。如果从语言替选生成模块208未接收到语言替选,则搜索项收集模块242仅将从搜索UI模块204接收的字符提供给从其获得建议的搜索项的应用206和建议源220-228中的一个或多个。虽然以上讨论从多个建议源获得建议的搜索项,但应注意,语言替选可以被提供给单个建议源以及从单个建议源接收建议的搜索项并且返回到搜索UI模块204。

每一建议源可以通过不同的方式确定一个或多个建议的搜索项,如上所述。然而,也可以基于语言替选进行确定。例如,每用户搜索历史源222可以包括包括汉语字符的先前搜索项的记录。随着用户输入拉丁字母表字母作为字符,语言替选生成模块208生成基于这些字符的不同的可能的汉语字符。将这些不同的汉语字符提供给每用户搜索历史源222,仿佛这些汉语字符是用户输入的实际字符。源222可以标识提供的汉语字符与包括汉语字符的先前搜索项之间的匹配,并且返回这些匹配汉语字符作为建议的搜索项。因此,响应于已经输入几个拉丁字母表字母,用户可以被呈现有每一包括一个或多个汉语字符的一个或多个建议的搜索项。

还应注意,由于建议的搜索项可以基于语言替选,因此建议的搜索项可以在各个不同的字母表和/或语言中。例如,建议的搜索项可以包括以“bei”开始的英语语言文字以及“bei”表示的汉语字符。

图5是示出根据一个或多个实施例的用于基于语言替选生成建议的搜索项的示例过程500的流程图。可以通过软件、固件、硬件或其组合实现过程500。可扩展搜索项建议模块和语言替选生成模块(例如图1的模块118或图2的模块202以及图2的模块208)执行过程500。过程500示出为动作的集合,并且不限于对于执行各个动作的操作所示的排序。过程500是用于基于语言替选生成建议的搜索项的示例过程;在此参照不同的图包括基于语言替选生成建议的搜索项的附加讨论。

在过程500中,接收作为搜索项的至少一部分的用户数据的字符(动作502)。用户可以通过上述各种不同的方式输入字符。

确定针对字符的语言替选(动作504)。可以通过不同的方式(包括将字符从一个字母表翻译为另一字母表并且标识如上所述语音音节可以表示的一个或多个字符)确定语言替选。

将字符和语言替选两者都提供给建议源(动作506)。替代地,在动作506中可以仅将语言替选提供给建议源。可以将语言替选提供给单个建议源,或替代地提供给多个建议源,如上所述。

从建议源接收一个或多个建议的搜索项(动作508)。虽然在一些情况下建议源可以不返回建议的搜索项,但从对其提供字符和语言替选的每一建议源典型地接收一个或多个建议的搜索项。

将建议的搜索项返回到用于呈现的搜索用户界面(动作510)。搜索用户界面可以对用户显示或另外呈现该建议的搜索项,如上所述。此外,从多个建议源接收的建议的搜索项可以组合为建议的搜索项的组合的集合,如上所述。

在此讨论的可扩展搜索项建议引擎支持各种不同使用情况。可扩展搜索项建议引擎提供具有对于输入搜索项以搜索应用的用户生成的建议的搜索项中的应用灵活性。不同应用可以依靠不同的建议源,并且无需(虽然可以)自身生成建议的搜索项。应用可以指定哪些一个或多个建议源用于生成建议的搜索项,并且也可以指定语言替选是否用在生成的建议的搜索项中。

图6示出根据一个或多个实施例的可以被配置为实现可扩展搜索项建议引擎的示例计算设备600。计算设备600可以是例如图1的计算设备102或104,并且可以实现图2的系统200的至少一部分。

计算设备600包括一个或多个处理器或处理单元602、可以包括一个或多个存储器和/或存储组件606的一个或多个计算机可读介质604、一个或多个输入/输出(I/O)设备608、以及允许各个组件和设备彼此通信的总线610。计算机可读介质604和/或一个或多个I/O设备608可以被包括作为计算设备600的一部分,或替代地可以耦合到计算设备600。总线610表示若干类型的总线结构中的一个或多个,包括使用各种不同的总线架构的存储器总线或存储控制器、外围总线、加速图形端口、处理器或本地总线等。总线610可以包括有线和/或无线总线。

存储器/存储组件606表示一个或多个计算机存储介质。组件606可以包括易失性介质(例如随机存取存储器(RAM))和/或非易失性介质(例如只读存储器(ROM)、闪存、光盘、磁盘等)。组件606可以包括固定介质(例如RAM、ROM、固定硬盘驱动器等)以及可拆除介质(例如闪存驱动器、可拆除硬盘驱动器、光盘等)。

可以利用一个或多个处理单元602执行的指令以软件实现在此讨论的技术。应理解,不同的指令可以存储在计算设备600的不同的组件中,例如在处理单元602中,在处理单元602的各个高速缓存存储器中,在设备600的其它高速缓存存储器中(未示出)、在其它计算机可读介质上,等。此外,应理解,在计算设备600中存储的指令的位置可以随着时间改变。

一个或多个输入/输出设备608允许用户将命令和信息输入到计算设备600,并且还允许将信息呈现给用户和/或其它组件或设备。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风、扫描仪等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡等。

可以在软件或程序模块的普通环境下在此描述各个技术。通常,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。可以在一些形式的计算机可读介质上存储或跨一些形式的计算机可读介质发送这些模块和技术的实现。计算机可读介质可以是计算设备可以访问的任何可用的一个或多个介质。通过示例的方式,但不是限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。

“计算机存储介质”包括通过用于例如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性、可拆除和不可拆除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用于存储期望的信息并且计算机可以访问的任何其它介质。

“通信介质”典型地包含计算机可读指令、数据结构、程序模块、或调制的数据信号(例如载波或其它传输介质)中的其它数据。通信介质还包括任何信息传送介质。术语“调制的数据信号”表示使其特性中的一个或多个按照编码信号中的信息的这种方式来设置或改变的信号。通过示例的方式,并且并非限制,通信介质包括有线介质(例如有线网络或直接布线连接)以及无线介质(例如声学、RF、红外和其它无线介质)。以上的任何的组合也被包括在计算机可读介质的范围内。

通常,可以使用软件、固件、硬件(例如固定逻辑电路)、手动处理、或这些实现的组合来实现在此描述的功能或技术中的任一项。在此使用的术语“模块”和“组件”通常表示软件、固件、硬件或其组合。在软件实现的情况下,模块或组件表示当在处理器(例如一个或多个CPU)上执行时执行指定的任务的程序代码。程序代码可以存储在一个或多个计算机可读存储器设备中,可以参照图6找到其进一步描述。在此描述的可扩展搜索项建议引擎技术的特征是平台独立的,表示可以在具有各种处理器的各种商用计算平台上实现所述技术。

虽然在对于结构特征和/或方法动作特定的语言中已经描述了主题内容,但应理解,所附权利要求中限定的主题内容不一定受限于以上描述的特定特征或动作。相反,以上描述的特定特征和动作被公开作为实现权利要求的示例形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号