触摸屏计算设备上的截短的自动建议的制作方法

文档序号:13041843阅读:249来源:国知局
触摸屏计算设备上的截短的自动建议的制作方法与工艺



背景技术:

搜索引擎可以包括自动建议特征,其在用户将文本输入到搜索框中时提供建议的查询。例如,以与被输入到搜索框中的文本相同的字符开始的最流行的短语可以作为下拉列表内的分开的行而被显示。当使用物理键盘时,用户可以使用方向键从下拉列表进行选择,以将建议的查询移动到搜索框,并且然后可以按回车键以执行web搜索。备选地,用户可以通过使用鼠标在下拉列表中点击建议的查询来发起web搜索。

在触摸屏计算设备上,建议的查询的下拉列表可以响应于用户使用屏幕上虚拟键盘将文本输入到搜索框中而被呈现。当用户在被显示在触摸屏计算设备上的下拉列表中点击建议的查询时,该建议的查询被移动到搜索框,并且web搜索被自动地发起以显示包括到相关网页的链接的搜索结果。当被显示在触摸屏计算设备上时,建议的查询的下拉列表可以包括箭头或者加号(+)图标,它们被呈现在每行的最右边处并且在被触摸时将对应的建议的查询移动到搜索框而并不自动地执行web搜索。



技术实现要素:

提供以下发明内容来以简化的形式介绍在下面的详细描述中被进一步描述的概念的选择。本发明内容并不旨在标识所要求保护的主题的关键特征或者基本特征,也并不旨在用于限制所要求保护的主题的范围。

在各种实现方式中,计算设备可以在构建搜索查询时减少用户错误。计算设备可以基于用户输入来在搜索框内显示一个或者多个搜索项。计算设备可以显示初始自动建议候选并且检测用户选择的初始自动建议候选。计算设备可以在搜索框内将用户选择的初始自动建议候选显示为初步搜索查询,而并不自动地发起针对初步搜索查询的web搜索。计算设备可以接收具有初步搜索查询作为公共前缀的新的自动建议候选,通过从每个新的自动建议候选移除公共前缀来生成截短的自动建议候选,并且显示截短的自动建议候选。

这些和其它特征和优点将从对以下详细描述的阅读和对附图的查阅而成为显而易见的。应当理解,前面的发明内容、以下详细描述和附图仅是说明性的,而并不是对所要求保护的各个方面的限制。

附图说明

图1a至图d图示了可以实现所描述的主题内容的各个方面的示例性计算设备的实施例。

图2图示了根据所描述的主题内容的各个方面的示例性架构的实施例。

图3图示了根据所描述的主题内容的各个方面的示例性过程的实施例。

图4图示了根据所描述的主题内容的各个方面的示例性过程的实施例。

图5图示了可以实现所描述的主题内容的各个方面的示例性操作环境的实施例。

图6图示了可以实现所描述的主题内容的各个方面的示例性计算机系统的实施例。

图7图示了可以实现所描述的主题内容的各个方面的示例性移动计算设备的实施例。

图8图示了可以实现所描述的主题内容的各个方面的示例性计算环境的实施例。

具体实施方式

以下结合附图提供的详细描述旨在作为对示例的描述,而并不旨在表示可以构建或者利用本示例的唯一形式。该描述阐述了示例的功能和用于构建和操作示例的步骤序列。然而,可以由不同的示例来实现相同或者等效的功能和序列。

对“一个实施例”、“一实施例”、“一示例实施例”、“一个实现”、“一实现方式”、“一个示例”、“一示例”等的引用指示所描述的实施例、实现方式或者示例可以包括特定的特征、结构或者特性,但是每个实施例、实现方式或者示例可以不一定包括特定的特征、结构或者特性。此外,这样的短语不一定指代相同的实施例、实现方式或者示例。此外,当特定特征、结构或者特性结合实施例、实现或者示例而被描述时,应当理解,这样的特征、结构或者特性可以结合其他实施例、实现方式或者示例而被实现,无论是否被明确地描述。

阐述了许多具体细节以便提供对所描述的主题内容的一个或者多个方面的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实践这些方面。虽然以框图的形式示出了某些组件以描述一个或者多个方面,但是应当理解,由单个组件执行的功能可以由多个组件执行。类似地,单个组件可以被配置为执行被描述为由多个组件所执行的功能。

现在参考附图来更详细地描述本主题内容公开的各种方面,其中相同的附图标记通常遍及全文指代相同或者相应的元件。附图和详细描述并不旨在将所要求保护的主题内容限制为所描述的特定形式。相反,其意图是涵盖落入所要求保护的主题内容的精神和范围内的所有修改、等同物和备选。

图1a至图d图示了作为可以实现所描述的主题内容的各个方面的示例性计算设备的实施例的计算设备100。在各种实施例中,计算设备100可以包括硬件和软件的组合。通常,计算设备100可以包括一个或者多个处理器和存储设备(例如,存储器和磁盘驱动器)以及各种输入设备、输出设备、通信接口和/或其他类型的设备。可以理解,各种类型的计算机可读存储介质(例如,存储器和/或附加硬件存储装置)可以是计算设备100的一部分。如本文所使用的,术语“计算机可读存储介质”和“多个计算机可读存储介质”不意味着以及明确地排除传播信号、调制的数据信号、载波或者任何其它类型的瞬态计算机可读介质。

计算机可执行指令可以被存储在一个或者多个计算机可读存储介质上,并且可以由一个或者多个处理器、计算设备和/或计算机系统执行以根据所描述的主题内容的各个方面来执行特定任务或者实现特定数据类型。在各种实现方式中,计算设备100可以包括存储计算机可执行指令的计算机可读存储介质(例如,存储器和/或附加硬件存储装置)和用于执行这样的计算机可执行指令的处理器,所述计算机可执行指令被配置为根据所描述的主题内容的各个方面来执行各种步骤、方法和/或功能。可以理解,计算机可执行指令可以按照诸如通过计算机程序(例如,客户端程序和/或服务器程序)、软件应用(例如,客户端应用和/或服务器应用)、软件代码、应用代码、源代码、可执行文件、可执行组件、程序模块、例程、应用编程接口(api)、函数、方法、对象、属性、数据结构、数据类型等等之类的各种方式而被体现和/或实现。

如所示,计算设备100可以由诸如智能电话的触摸屏计算设备来实现。应当理解,计算设备100可以由各种类型的移动或者固定计算设备来实现,这些设备诸如平板设备、膝上型计算机、媒体播放器、游戏设备、车辆计算机、可穿戴计算设备、台式计算机和/或其他合适类型的客户端侧计算设备。

计算设备100可以显示用于允许用户构建和提交搜索查询的用户界面101。用户界面101可以由提供搜索界面的web浏览应用或者其他合适类型的应用、应用程序和/或app来呈现。在各种情况下,用户界面101可以在发起应用(例如,web浏览器、搜索引擎app等)之后和/或在呈现网页(例如,搜索引擎网页)或者其他搜索界面之后被呈现。

计算设备100和用户界面101可以被配置为接收和响应各种类型的用户输入。如图1a中所示,例如,用户界面101可以被呈现在计算设备100的触摸屏上,并且可以包括被配置为接收触摸输入的屏幕上虚拟键盘110。计算设备100还可以包括用于提供语音识别和/或手写识别的硬件和软件。计算设备100和/或用户界面101可以提供用于在不同类型的用户输入之间进行切换的各种机制。例如,虚拟键盘110可以包括提供用于选择语音输入和/或手写输入的选项的空格键111。

计算设备100和用户界面101可以支持接收以不同语言提供的键入的、说出的和/或手写的用户输入。在各种实现方式中,计算设备100和用户界面101可以接收并响应使用拉丁语和/或非拉丁语(例如,中文、日语、韩语、越南语、印度语等)字符而被键入或者手写的用户输入。如图1a中所示,例如,虚拟键盘110可以包括用于在中英文键盘和/或输入模式之间进行切换的语言按钮112。如所示,虚拟键盘110可以呈现具有拉丁语字符和非拉丁语字符的键。

用户界面101可以包括被配置为基于用户输入来显示一个或者多个搜索项的搜索框120。如图1a中所示,例如,搜索框120可以响应于一个或者多个类型的用户输入来显示搜索项121(例如,beijing)。在各种实现方式中,搜索项121可以响应于在虚拟键盘110上的用户键入而被显示在搜索框120内。备选地或者附加地,用户可以通过说出或者手写一个或者多个字来提供用户输入,该用户输入然后使用语音识别或者手写识别而被处理以用于在搜索框120内显示。触摸搜索框120中的搜索项121可以允许用户编辑搜索项121,并且提供用于选择字、在触摸点处显示插入指针和/或粘贴复制的字的功能。

搜索框120可以包括用于发起web搜索的搜索按钮122和用于移除所显示的搜索查询的删除按钮123。除了触摸搜索按钮122之外,用户还可以通过触摸虚拟键盘110上的录入键113或者通过按压计算设备100上的物理搜索按钮102来发起web搜索。通常,发起web搜索将导致包括到与搜索项121相关的网页的链接在内的搜索引擎结果页(serp)的递送。要求用户采取行动以发起web搜索减少了用户在构建完整的搜索查询之前意外地或者过早地执行web搜索的可能性。因此,可以避免用户错误,并且可以节省计算设备100和/或远程计算机系统(例如,搜索引擎、web服务、基于云的服务等)的处理资源。

在一些实现方式中,计算设备100可以包括和/或运行支持不同语言的输入法编辑器(ime),并且用户界面110可以响应于用户输入来呈现ime候选的集合130。取决于针对ime启用或者选择哪种语言(例如,英文或者中文),可以使用拉丁语字符或者非拉丁语字符来显示ime候选的集合130。ime候选的集合130可以被呈现为用户类型,并且可以由计算设备100经由ime而被本地地提供。如图1a中所示,例如,可以响应于用户经由虚拟键盘110针对搜索项121(例如,beijing)键入拉丁语字符而使用拉丁语字符来提供ime候选131至133(例如,beijing、beijing和beijing's)。用户可以触摸ime候选131至133中的一个以将所选择的字或者短语移动到搜索框120。当被触摸时,ime候选131-133之一可以替换搜索框120内的搜索项121而并不自动地发起web搜索。

诸如输入映射之类的ime或者类似ime的功能也可以与搜索框120结合地被提供和/或由搜索框120提供。例如,搜索框120可以被配置为根据针对各种被支持语言的输入法来接收和解释虚拟键盘110的击键。针对语言的这样的输入法可以包括:基于语音的输入法,其允许用户键入拉丁语字符来表示字的发音,和/或基于形状的输入法,其允许用户键入拉丁语字符来表示字的笔画或者形状。针对语言的示例性输入法包括但不限于:中文输入法(例如,拼音、注音、五笔等)、日语输入法(例如,罗马字、平假名、片假名)、韩语输入法(例如,韩文、汉字等)、越南语输入法(例如,telex、vni、viqr)、印度语输入法(例如,bhashaindia等)和/或针对被支持语言的其他输入法。例如,针对搜索项121(例如,beijing)的拉丁语字符可以经由虚拟键盘110(例如,qwerty键盘)而被输入,并且可以被接收并且解释为输入法字符(例如,拼音字符)。这样的ime功能可以由呈现用户界面101的应用、由用户界面101和/或由与呈现用户界面101的应用相结合地运行的ime或者类似ime的程序或者操作系统组件来提供。

初始自动建议候选

响应于搜索项121(例如,beijing)在搜索框120中的输入,可以在用户界面101中显示自动建议窗口140。可以理解的是,如果ime候选131(例如,beijing)被选择并移动到搜索框120,则也可以显示自动建议窗口140。自动建议窗口140可以按照各种方式被实现,诸如弹出列表、下拉列表、弹出窗口、框架和/或在搜索框120附近呈现和/或附接到搜索框120的其他合适的显示区域。

如所示,自动建议窗口140包括用于呈现初始自动建议候选的集合150的若干行141至146。行141至146的数量可以大于由移动计算设备上的下拉列表通常提供的行数(例如,4或者5),该移动计算设备中屏幕尺寸较小并且部分被虚拟键盘110消耗。可以理解,由自动建议窗口140呈现的行141至146的数量可以基于被包括在初始自动建议候选的集合150中的自动建议候选的数量、被包括在初始自动建议候选的集合150中的自动建议候选的长度和/或其他设计考虑而变化。

计算设备100可以从实现搜索引擎和/或具有自动建议功能的其他web服务(例如,基于云的服务)的远程计算机系统接收初始自动建议候选的集合150。计算设备100可以通过网络或者网络的组合来从远程计算机系统接收初始自动建议候选的集合150。示例性网络包括但不限于:诸如因特网的广域网(wan)、局域网(lan)、专用网络、公共网络、分组网络、电路交换网络、有线网络和/或无线网络。计算设备100可以使用诸如因特网通信协议、wan通信协议、lan通信协议和/或其他网络通信协议之类的各种通信协议来与远程计算机系统通信。

在各种实现方式中,当用户键入、说出和/或手写一个或者多个字时,计算设备100可以提交针对搜索项121的一个或者多个web请求(例如,http请求)。初始自动建议候选的集合150可以被接收,并且当用户输入或者编辑不同的字时改变。远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)可以从自动建议字典或者映射到搜索项121的字符和/或字的字和短语的其他储存库提供初始自动建议候选的集合150。应当理解,初始自动建议候选的集合150不包括响应于发起针对搜索项121的web搜索而由搜索引擎提供的serp并且将与由搜索引擎提供的serp被区分。

在图1a中所示的示例性实现方式中,初始自动建议候选的集合150包括:自动建议候选北京(beijing)150a、自动建议候选背景(background)150b、自动建议候选北京时间(beijingtime)150c、自动建议候选北京天气(beijingweather)150d、自动建议候选北京地图(beijingmaps)150e、自动建议候选北京银行(beijingbank)150f、自动建议候选北京地铁(beijingsubway)150g、自动建议候选北京青年(beijingyouth)150h、自动建议候选北京移动(beijingmobile)150i、自动建议候选北京大学(beijinguniversity)150j、自动建议候选背景图片(backgroundimages)150k、自动建议候选北京公交(beijingbus)150l、自动建议候选北京现代(beijinghyundai)150m、自动建议候选北京车展(beijingautoshow)150n、自动建议候选北京国安(beijingguoansoccerclub)150o、自动建议候选北京地税(beijingmunicipalbureauoflocaltaxation)150p、自动建议候选北京工商局(beijingindustryandcommercebureau)150q以及自动建议候选北京爱情故事(beijinglovestory)150r。

在这一实现方式中,搜索项121可以使用一种类型的字符(例如,拉丁语字符、输入法字符)和/或以一种语言(例如,英语)而被提供,并且初始自动建议候选的集合150可以使用不同类型的字符(例如,非拉丁语字符、音译字符)和/或以不同的语言(例如,中文)而被显示。在一些实现方式中,初始自动建议候选的集合150可以包括以与针对搜索项121所提供的相同的语言和/或使用相同类型的拉丁语或者非拉丁语字符而被显示的一个或者多个自动建议候选,以及以与针对搜索项121所提供的不同的语言和/或使用不同类型的字符而被显示的一个或者多个自动建议候选。附加地,初始自动建议候选的集合150可以包括以多种不同语言并使用适合这些不同语言的拉丁语或者非拉丁语字符而被显示的自动建议候选。在另一实现方式中,可以使用与针对搜索项121所提供的相同类型的字符(例如,拉丁语或者非拉丁语)和/或以相同的语言来显示初始自动建议候选的集合150。特别而言,这样的实现可以仅以使用拉丁语字符的英文来显示搜索项和/或搜索查询,并仅以使用拉丁语字符的英语来提供自动建议候选。默认设置和/或用户偏好可以控制如何解释用户输入和/或用于显示初始自动建议候选的集合150的语言。

在各种实现方式中,初始自动建议候选的集合150可以包括搜索项121到不同语言的一个或者多个翻译,诸如从英语到中文。类似地,初始自动建议候选的集合150可以包括搜索项121到不同类型字符的一个或者多个转换,诸如从拉丁语字符到非拉丁语字符和/或从输入法字符(例如,拼音字符)到音译字符(如中文字符)。如图1a中所示,例如,初始自动建议候选的集合150包括自动建议候选北京(beijing)150a作为搜索项121的主要(例如,最可能的、最常见的、最流行的,等等)翻译或者转换。初始自动建议候选150还包括自动建议候选背景(background)150b作为辅助翻译或者转换。在这种情况下,自动建议候选背景(background)150b是具有与搜索项121的发音翻译在发音上相似的发音的翻译或者音译字。可以提供附加和/或替代类型的辅助翻译或者转换,诸如具有与搜索项121相关的含义或者上下文以及搜索项121的其他共同翻译或者转换的字或者短语。

初始自动建议候选的集合150还可以包括基于另一自动建议候选而被提供的一个或者多个自动建议候选,诸如搜索项121的翻译或者转换。例如,自动建议候选150c至150j和150l至150r可以基于自动建议候选北京(beijing)150a而被提供,并且可能包括以与自动建议候选北京(beijing)150a相同的字符开始的短语。同样,自动建议候选背景图片(backgroundimages)150k可以是以自动建议候选背景(background)150b开始的短语并基于自动建议候选背景(background)150b而被提供。初始自动建议候选的集合150不限于以单个搜索项121(或者其转换)开始的短语,并且因此提供更多样化选择的自动建议候选。

基于在某一时间段内在用户群体中的相关性和/或流行程度,可以由远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)自动地建议并提供以搜索项121的翻译或者转换开始的短语。备选地或者附加地,这样的短语可以基于各种类型的用户相关数据,诸如由用户实施的过去搜索、计算设备100的地理位置、用户偏好、用户简档(例如,设备简档、计算机程序简档、网站简档、使用简档等)和/或与相关性有关的其他因素。

在其中用户相关数据被利用的实现方式中,此类用户相关数据的提供者(例如,计算设备100、应用等)和消费者(例如,远程计算机系统、搜索引擎、web服务、基于云的服务等)可以采用对用户隐私和信息保护感兴趣的各种机制。这样的机制可以包括但不限于:要求授权以监视、收集或者报告数据;使用户能够选择进行和选择停用数据监控、收集和报告;采用隐私规则来防止某些数据被监控、收集或者报告;提供用于对允许被监控、收集或者报告的敏感数据进行匿名化、截短或者混淆的功能;采用用于保护和清除数据的数据保留政策;等等。

在各种实现方式中,计算设备100可以将初始自动建议候选的集合150接收为自动建议候选150a至150r的排名列表。自动建议候选150a至150r的排名或者评分可以基于相关性、流行度、时间、用户相关数据和/或与搜索项121有关的因素。初始自动建议候选的集合150还可以伴随有元数据,其包括针对每个自动建议候选150a至150r的排名或者分数和/或表示每个自动建议候选150a至150r的长度。

除了自动建议候选150a至150r之外,排名列表还可以包括其他自动建议候选。例如,排名列表可以包括比可以适合于自动建议窗口140内的更多的自动建议候选和/或最终不被选择用于显示的某些自动建议候选。在某些情况下,可以跳过排名列表中的一个或者多个自动建议候选(未被选择用于显示),以增加自动建议窗口140中显示的初始自动建议候选的集合150的多样性。例如,如果从排名列表中选择自动建议候选北京天气(beijingweather)150d以用于显示,则可以在排名列表中跳过诸如北京天气预报(beijingweatherforecast)之类的较窄的短语,从而使得自动建议候选150a至150r是以不同字结尾的多种短语。

如图1a中所示,自动建议候选150a至150r可以被布置在自动建议窗口140的行141至146内。在各种实现方式中,自动建议窗口140的行141至146中的一个或者多个可以包括多个自动建议候选。例如,行141可以包括与搜索框120相邻地被显示的自动建议候选150a至150d。自动建议窗口140不限于每行一个自动建议候选,并且因此提供了针对用户选择的更多的自动建议候选,增加了用户感兴趣的特定自动建议候选将被显示和触摸的可能性,并且减少了对易于出现用户错误的经由虚拟键盘110进一步键入的需要。

计算设备100、用户界面101和/或呈现用户界面101的应用可以包括呈现逻辑和/或代码,用于选择自动建议候选150a至150r以用于显示和/或在自动建议窗口140的行141至146内布置自动建议候选150a至150r。自动建议候选150a至150r可以基于每个自动建议候选150a至150r的排名和/或长度而被布置在自动建议窗口140的行141至146中。在图1a中所示的实现方式中,可以在自动建议窗口140的底部和/或与搜索框120相邻地显示较短的自动建议候选(例如,自动建议候选150a至150d),并且可以在自动建议窗口140的顶部显示较长的自动建议候选(例如,自动建议候选150q和150r)。在其他实现方式中,可以在自动建议窗口140的顶部显示较短的自动建议候选,并且可以在自动建议窗口140的底部显示较长的自动建议候选。

在各种实现方式中,自动建议候选可以被选择和/或布置以使被显示在自动建议窗口140中的自动建议候选的数量最大化。较短的自动建议候选可以被归组和/或布置在特定行内,以最佳地利用用于自动建议候选的可用槽隙。当在已经选择了一定数量的排名的自动建议候选以用于显示之后用于自动建议候选的槽隙可用时,可以选择具有适合于该槽隙的长度的下一个最相关的自动建议候选以用于显示。

当在自动建议窗口140中显示初始自动建议候选的集合150之时,可以由用户选择自动建议候选150a至150r之一。计算设备100、用户界面101和/或显示用户界面101的应用可以被配置为检测并且响应自动建议窗口140的行141至146内的自动建议候选150a至150r的触摸。在图1a中所示的实现方式中,例如,用户可以触摸行141中的自动建议候选北京(beijing)150a。在这一示例中,用户选择的自动建议候选(例如,自动建议候选北京(beijing)150a)可以是使用音译的非拉丁语(例如,中文)字符所显示的搜索项121的主要翻译或者转换(例如,北京)。

截短的自动建议候选

参见图1b并继续参考前述附图,用户界面101可以在搜索框120内显示用户选择的自动建议建议候选(例如,自动建议候选北京(beijing)150a)作为初步搜索查询124。例如,当在自动建议窗口140中被触摸时,自动建议候选北京(beijing)150a可以被检测到并被移动到搜索框120。初步搜索查询124(例如,北京)可以替代搜索项121,并且可以在搜索框120内被显示而并不自动地发起针对初步搜索查询124的web搜索。为了发起针对初步搜索查询124的web搜索,用户可以触摸搜索按钮122、录入键113(其可以被重新标记为搜索(searchfor)键)或者物理搜索按钮102。要求用户采取行动以发起web搜索减少了用户在构建完整的搜索查询之前意外地或者过早地执行web搜索的可能性。因此,可以避免用户错误,并且可以节省计算设备100和/或远程计算机系统(例如,搜索引擎、web服务、基于云的服务等)的处理资源。

在一些实现方式中,用户界面101可以显示提供附加功能的ime命令栏160。如图1b中所示,例如,ime命令栏160可以包括:用于选择手写输入的手写按钮161,用于在中英文键盘之间切换的键盘按钮162,用于将初步搜索查询124存储在云存储中的触宝用户词库云备份(userwordlibrarycloudbackup)按钮163,以及用于基于初步搜索查询124来显示进一步的选择和/或ime候选的选项按钮164。

当在自动建议窗口140中选择特定的自动建议候选(例如,自动建议候选北京(beijing)150a)时,计算设备100可以接收新的自动建议候选。在各种实现方式中,计算设备100可以提交针对初步搜索查询124的一个或者多个web请求(例如,http请求),并且通过网络或者网络组合而基于来自远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)的初步搜索查询124来接收新的自动建议候选。远程计算机系统可以从自动建议字典或者映射到初步搜索查询124的字符和/或字的字和短语的其他储存库提供新的自动建议候选。应当理解,新的自动建议候选不包括响应于发起针对初步搜索查询124的web搜索而由搜索引擎提供的serp并且将与由搜索引擎提供的serp进行区分。

在图1b中所示的示例性实现方式中,基于初步搜索查询124(例如,北京)的新的自动建议可以包括:北京时间(beijingtime),北京天气(beijingweather),北京地图(beijingmaps),北京银行(beijingbank),北京地铁(beijingsubway),北京青年(beijingyouth),北京移动(beijingmobile),北京大学(beijinguniversity),北京公交(beijingbus),北京现代(beijinghyundai),北京车展(beijingautoshow),北京国安(beijingguoansoccerclub),北京地税(beijingmunicipalbureauoflocaltaxation),北京卫视(beijingtelevision),北京摇号(beijinglottery),北京工商局(beijingindustryandcommercebureau),北京爱情故事(beijinglovestory),北京雾霾放假(beijingsmog/hazeholiday),北京天气预报(beijingweatherforcast),北京最牛别墅(beijingbestvilla),北京时间校准(beijingtimeadjustment/offset),北京酒店预定(beijinghotelbooking),北京师范大学(beijingnormaluniversity),北京协和医院(beijingunionhospital),北京公交查询(beijingbusinquiry)以及北京市工商局(beijingmunicipalindustryandcommercebureau)。

基于在某一时间段内在用户群体之中的相关性和/或流行程度,可以由远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)自动地建议并且提供用于初步搜索查询124的新的自动建议候选。备选地或者附加地,用于初步搜索查询124的新的自动建议候选可以基于各种类型的用户相关数据(例如,由用户实施的过去搜索、计算设备100的地理位置、用户偏好、用户简档)和/或其他与相关性有关的因素。在利用用户相关数据的实现方式中,此类用户相关数据的提供者(例如,计算设备100、应用等)和消费者(例如,远程计算机系统、搜索引擎、web服务、基于云的服务等)可以采用对用户隐私和信息保护感兴趣的各种机制,如上所述。

在各种实现方式中,计算设备100可以接收用于初步搜索查询124的新的自动建议候选的排名列表。新的自动建议候选可以基于相关性、流行度、时间、用户相关数据和/或与初步搜索查询124有关的其他因素而被排名或者评分。新的自动建议候选还可以伴随有包括针对每个新的自动建议候选的排名或者分数的元数据。新的自动建议候选的排名列表可以包括比可以适合于自动建议窗口140内的更多的自动建议候选和/或最终不被选择用于显示的某些新自动建议候选。

在一个实现方式中,初步搜索查询124和新的自动建议候选可以使用相同类型的字符(例如,非拉丁语字符、音译字符)和/或以相同的语言(例如中文)而被提供。在一些实现方式中,新的自动建议候选可以包括:以与针对初步搜索查询124所提供的相同的语言(例如,中文)和/或使用相同类型的字符(例如,拉丁语或者非拉丁语)而被提供的一个或者多个自动建议候选,以及以与针对初步搜索查询124所提供的不同的语言(例如英语)和/或使用不同类型的字符(例如,拉丁语字符)而被提供的一个或者多个新的自动建议候选。附加地,新的自动建议候选可以包括以多种不同语言、使用适合于这些不同语言的拉丁语或者非拉丁语字符而被提供的自动建议候选。默认设置和/或用户偏好可以控制如何解释初步搜索查询124和/或用于提供新的自动建议候选的语言。

在一些情况下,用于初步搜索查询124的新的自动建议候选可以被提供为新的自动建议候选的集合,并且该集合中的每个新的自动建议候选可以包括初步搜索查询124(例如,北京)作为公共前缀。例如,集合中的每个新的自动建议候选可以是以与初步搜索查询124相同的字符开始的短语。在其他情况下,针对初步搜索查询124而被提供的新的自动建议候选可以被解析和/或过滤以构成新的自动建议候选的集合,所述集合仅包含包括初步搜索查询124作为公共前缀的新的自动建议候选。附加地,包括初步搜索查询124作为公共前缀的某些新的自动建议候选可以从该集合被排除,以增加新的自动建议候选的多样性。例如,由于北京工商局(beijingindustryandcommercebureau)被提供为新的自动建议候选,所以可以从该集合排除更窄的短语北京市工商局(beijingmunicipalindustryandcommercebureau),并且由包括跟随有一个或者多个不同单词的公共前缀北京(beijing)的另一个短语来取代。

在各种实现方式中,可以通过从每个新的自动建议候选移除公共前缀(例如,北京,初步搜索查询124)来生成截短的自动建议候选的集合170。例如,可以在字符和/或字级别处从每个新的自动建议候选识别和提取公共前缀北京。通过移除公共前缀,每个新的自动建议候选的长度被缩短,并且显示截短的自动建议候选的集合170所需要的空间更少。另外,截短的自动建议候选的集合170将由更短和更简洁的短语构成,以便于用户阅读和查看。计算设备100、用户界面101和/或呈现用户界面101的应用可以包括用于从由远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)所提供的新的自动建议候选生成截短的自动建议候选的集合170的逻辑和/或代码。备选地,计算设备100可以从远程计算机系统接收截短的自动建议候选的集合170,其可以被配置为响应于初步搜索查询124来生成并且提供截短的自动建议候选的集合170。

在图1b中所示的示例性实现方式中,基于初步搜索查询124的截短的自动建议候选的集合170包括:截短的自动建议候选时间(time)170a,截短的自动建议候选天气(weather)170b,截短的自动建议候选地图(maps)170c,截短的自动建议候选银行(bank)170d,截短的自动建议候选地铁(subway)170e,截短的自动建议候选青年(youth)170f,截短的自动建议候选移动(mobile)170g,截短的自动建议候选大学(university)170h,截短的自动建议候选公交(bus)170i,截短的自动建议候选现代(hyundai)170j,截短的自动建议候选车展(autoshow)170k,截短的自动建议候选国安(guoansoccerclub)170l,截短的自动建议候选地税(municipalbureauoflocaltaxation)170m,截短的自动建议候选卫视(television)170n,截短的自动建议候选摇号(lottery)170o,截短的自动建议候选工商局(industryandcommercebureau)170p,截短的自动建议候选爱情故事(lovestory)170q,截短的自动建议候选雾霾放假(smog/hazeholiday)170r,截短的自动建议候选天气预报(weatherforecast)170s,截短的自动建议候选最牛墅(bestvilla)170t,截短的自动建议候选时间校准(timeadjustment/offset)170u,截短的自动建议候选酒店预定(holidaybooking)170v,截短的自动建议候选师范大学(normaluniversity)170w,截短的自动建议候选协和医院(unionhospital)170x,截短的自动建议候选公交查询(businquiry)170y,截短的自动建议候选市工商局(municipalindustryandcommercebureau)170z。

如图1b中所示,可以在自动建议窗口140的行141至146内呈现截短的自动建议候选的集合170。同样,行141至146的数量可以大于由移动计算设备上的下拉列表典型地提供的行数(例如,4或者5)下拉列表,并且可以基于被包括在截短的自动建议候选的集合170中的自动建议候选的数量、被包括在截短的自动建议候选的集合170中的自动建议候选的长度、和/或其他设计考虑事项来变化。

计算设备100、用户界面101和/或呈现用户界面101的应用可以包括呈现逻辑和/或代码,用于选择截短的自动建议候选170a至170z以用于显示和/或在自动建议窗口140的行141至146内布置截短的自动建议候选170a至170z。截短的自动建议候选170a至170z可以基于每个截短的自动建议候选170a至170z的排名和/或长度而被布置在自动建议窗口140的行141至146内。

在各种实现方式中,截短的自动建议候选可以被选择和/或布置以使在自动建议窗口140中显示的截短的自动建议候选的数量最大化。较短的截短的自动建议候选可以被归组和/或布置在特定行内,以最佳地利用用于截短的自动建议候选的可用槽隙。当在已经选择了一定数量的截短的自动建议候选以用于显示之后用于截短的自动建议候选的槽隙可用时,可以选择具有适合于该槽隙的长度的下一个最相关的截短的自动建议候选以用于显示。

如图1b中所示,自动建议窗口140的行141至146中的一个或者多个行可以包括多个截短的自动建议候选。例如,行141可以包括与搜索框120相邻地被显示的截短的自动建议候选170a至170f。在图1b中所示的实现方式中,可以在自动建议窗口140的底部和/或与搜索框120相邻地显示较短的自动建议候选(例如,截短的自动建议候选170a至170f),并且可以在自动建议窗口140的顶部显示较长的自动建议候选(例如,截短的自动建议候选170x至170z)。在其他实现方式中,可以在自动建议窗口140的顶部显示较短的截短的自动建议候选,并且可以在自动建议窗口140的底部显示较长的截短的自动建议候选。

当在搜索框120内呈现初步搜索查询124(例如,北京)时,自动建议窗口140可以显示截短的自动建议候选的集合170。在搜索框120内呈现初步搜索查询124提供了针对截短的自动建议候选170x至170z的上下文,其是不包括初步搜索查询124的短语。每行呈现多个截短的自动建议候选为用户提供了更多选择,并且增加了用户感兴趣的特定短语将被显示和触摸的可能性。通常,呈现截短的自动建议候选的集合170鼓励用户不是通过易于出现用户错误的在虚拟键盘110上进一步输入,而是通过触摸截短的自动建议候选170a至170z中的一个来构建和/或完成搜索查询。如果期望,则用户仍然可以触摸和编辑初步搜索查询124。例如,如果截短的自动建议候选170a至170z不包括用户感兴趣的短语,用户可以添加字或者以其他方式修改初步搜索查询124搜索。

在一些实现方式中,当特定的自动建议候选(例如,自动建议北京(beijing)150a)被选择并且被移动到搜索框120以进一步鼓励用户无需进一步输入,而是使用自动建议候选来构建和/或完成搜索进行查询时,可以隐藏虚拟键盘110。隐藏虚拟键盘110还可以允许在自动建议窗口140中呈现附加的截短的自动建议候选。在这种实现方式中,如果用户在搜索框120中触摸初步搜索查询124以启用编辑和/或如果用户触摸被配置为示出虚拟键盘110的按钮,则虚拟键盘110可以重新出现。

当在自动建议窗口140中显示截短的自动建议候选的集合170之时,可以由用户选择截短的自动建议候选170a至170z中的一个截短的自动建议。计算设备100、用户界面101和/或显示用户界面101的应用可以被配置为检测并响应对自动建议窗口140的行141至146内的截短的自动建议候选170a至170z的触摸。在图1b中所示的实现方式中,例如,用户可以触摸行142中的截短的自动建议候选大学(university)170h。

修改的搜索查询

参见图1c并继续参考前述附图,用户界面101可以基于用户选择的截短的自动建议建议候选(例如,截短的自动建议候选大学(university)170h)来在搜索框120内显示修改的搜索查询125(例如,北京大学)。例如,当在自动建议窗口140中被触摸时,截短的自动建议候选大学(university)170h可以被检测并且被附加到搜索框120中的初步搜索查询124(例如,北京)。修改的搜索查询125(例如,北京大学)可以被显示在搜索框120内,而并不自动地发起web搜索。为了发起针对修改的搜索查询125的web搜索,用户可以触摸搜索按钮122、录入键113(其可以被重新标记为搜索(searchfor)键)或者物理搜索按钮102。

当在自动建议窗口140中选择截短的自动建议候选大学(university)170h时,计算设备100可以基于修改的搜索查询125(例如,北京大学)来接收更新的自动建议候选。在各种实现方式中,计算设备100可以提交针对修改的搜索查询125的一个或者多个web请求(例如,http请求),并且基于来自远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)的修改的搜索查询125来通过网络或者网络组合接收更新的自动建议候选。远程计算机系统可以从自动建议字典或者映射到修改的搜索查询125的字符和/或字的字和短语的其他储存库提供更新的自动建议候选。应当理解,更新的自动建议候选不包括响应于发起针对修改的搜索查询125的web搜索而由搜索引擎提供的serp并且将与由搜索引擎提供的serp进行区分。

可以基于某一时间段内在用户群体之中的相关性和/或流行程度、各种类型的用户相关数据(例如,由用户实施的过去搜索、计算设备100的地理位置、用户偏好、用户简档)和/或与相关性相关的其它因素,来自动建议针对修改的搜索查询125的更新的自动建议候选。用户相关数据的提供者(例如,计算设备100、应用等)和消费者(例如,远程计算机系统、搜索引擎、web服务、基于云的服务等)可以利用对用户隐私和信息保护感兴趣的各种机制。

在各种实现方式中,针对修改的搜索查询125的更新的自动建议候选可以作为列表而被接收,该列表基于与初步搜索查询有关的相关性、流行度、时间、用户相关数据和/或其他因素而被排名或者评分。更新的自动建议候选也可以伴随有包括针对每个更新的自动建议候选的排名或者分数的元数据。更新的自动建议候选的排名列表可以包括比可以适合于自动建议窗口140内的更多的自动建议候选和/或最终不被选择用于显示的某些更新的自动建议候选。

可以使用相同类型的字符(例如,非拉丁语字符、音译字符)和/或以相同的语言(例如,中文)来提供修改的搜索查询124和新的自动建议候选。在一些实现方式中,可以按照多种不同的语言、使用适合于这些不同语言的拉丁语或者非拉丁语字符来提供更新的自动建议候选。

在一些情况下,每个更新的自动建议候选可以包括修改的搜索查询125(例如,北京大学)作为公共前缀。在其他情况下,可以生成更新的自动建议候选的集合,该集合仅包含包括修改的搜索查询125作为公共前缀的更新的自动建议候选。附加地,包括修改的搜索查询125作为公共前缀的某些更新的自动建议候选可以从该集合被排除,以增加更新的自动建议候选的多样性。

在各种实现方式中,可以通过在字符和/或字级别处从每个更新的自动建议候选移除公共前缀(例如,北京大学,修改的搜索查询125)来生成截短的自动建议候选的集合180。计算设备100、用户界面101和/或呈现用户界面101的应用可以包括用于从更新的自动建议候选生成截短的自动建议候选的集合180的逻辑和/或代码。备选地,计算设备100可以响应于修改的搜索查询125来从远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)接收截短的自动建议候选的集合180。

在图1c中所示的示例性实现方式中,基于修改的搜索查询125(例如,北京大学)的截短的自动建议候选可以包括:国培(nationaltraining)180a,地址(address)180b,邮箱(mailbox)180c,官网(officialwebsite)180d,医院(hospital)180e,医学部(medicalschool/division)180g,图书馆(library)180h,法学院(schooloflaw)180i,出版社(publisher)180j,招生网(admissionsnetwork)180k,教学网(teachingnetwork)180l,研究生(graduatestudent)180m,研究生院(graduateschool)180n,第三医院(thirdhospital)180o,第一医院(firsthospital)180p,人民医院(people’shospital)180q,口腔医院(stomatologicalhospital)180r,深圳医院(shenzhenhospital)180s,生电影节(collegestudentfilmfestival)180t,第六医院(sixthhospital)180u,肿瘤医院(cancerhospital)180v。

当在搜索框120中呈现修改的搜索查询125(例如,北京大学)时,可以在自动建议窗口140的行141至146内显示截短的自动建议候选180a至180v。如所示,自动建议窗口140的行141至146中的一个或者多个行可以包括多个截短的自动建议候选。可以基于每个截短的自动建议候选180a至180v的排名和/或长度来在自动建议窗口140的行141至146内布置截短的自动建议候选180a至180v。计算设备100、用户界面101和/或呈现用户界面101的应用可以包括呈现逻辑和/或代码,其用于选择截短的自动建议候选180a至180v以用于显示和/或在自动建议窗口140的行141至146内布置截短的自动建议候选180a至180v。

当在自动建议窗口140中显示截短的自动建议候选的集合180之时,可以由用户选择截短的自动建议候选180a至180v中的一个截短的自动建议候选。备选地,如果截短的自动建议候选180a至180v不包括用户感兴趣的短语,则用户可以触摸和编辑修改的搜索查询125。计算设备100、用户界面101和/或显示用户界面101的应用可以被配置为检测并且响应自动建议窗口140的行141至146内的截短的自动建议候选180a至180v的触摸。在图1c中所示的实现方式中,例如,用户可以触摸在行144中的截短的自动建议候选第三医院(thirdhospital)180o。

参见图1d并继续参考前述附图,用户界面101可以基于用户选择的截短的自动建议建议候选(例如,截短的自动建议候选第三医院(thirdhospital)180o)来在搜索框120内显示修改的搜索查询126(例如,北京大学第三医院)。例如,当在自动建议窗口140中被触摸时,截短的自动建议候选第三医院(thirdhospital)180o可以被检测并且被附加到搜索框120中的修改的搜索查询125(例如,北京大学)。修改的搜索查询126(例如,北京大学第三医院)可以被显示在搜索框120内,而并不自动地发起web搜索。为了发起对修改的搜索查询126的web搜索,用户可以触摸搜索按钮122、录入键113(其可以被重新标记为搜索(searchfor)键)或者物理搜索按钮102。

当在自动建议窗口140中选择截短的自动建议候选第三医院(thirdhospital)180o时,计算设备100可以基于修改的搜索查询126(例如,北京大学第三医院)来接收更新的自动建议候选。应当理解,更新的自动建议候选不包括响应于发起针对修改的搜索查询126的web搜索而由搜索引擎提供的serp并且将与由搜索引擎提供的serp进行区分。计算设备100可以通过在字符和/或字级别处从每个更新的自动建议候选移除公共前缀(例如,北京大学第三医院,修改的搜索查询126)来生成截短的自动建议候选190的集合。备选地,计算设备100可以响应于修改的搜索查询126来从远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)接收截短的自动建议候选190的集合。

在图1d中所示的示例性实现方式中,基于修改的搜索查询126(例如,北京大学第三医院)的截短的自动建议候选可以包括:截短的自动建议候选官网(officialwebsite)190a,截短的自动建议候选地址(address)190b,截短的自动建议候选骨科(orthopedics)190c,截短的自动建议候选李芊(ligan)190d,截短的自动建议候选教育处(educationdepartment)190e,截短的自动建议候选荨麻疹(urticaria)190f,截短的自动建议()网上挂号(onlineappointment)190g,截短的自动建议候选生殖中心(reproductivecenter)190h,截短的自动建议候选电话挂号(telephoneappointment)190i,截短的自动建议候选第二门诊部(thesecondclinic)190j,截短的自动建议候选和生殖医学中心(centerforreproductivemedicine)190k。

当在搜索框120中呈现修改的搜索查询126(例如,北京大学第三医院)时,可以在自动建议窗口140的行141至145内显示截短的自动建议候选190a至190k以供用户选择。如果截短的自动建议候选190a至190k不包括用户感兴趣的短语,则用户可以触摸和编辑修改的搜索查询126。

如果用户对修改的搜索查询126满意,则用户可以通过触摸搜索按钮122、录入键113(其可以被重新标记为搜索(searchfor)键)或者物理搜索按钮102来发起针对修改的搜索查询126的web搜索。通常,发起web搜索将导致包括到与修改的搜索查询126相关的网页的链接在内的一个或者多个serp的递送。要求用户采取行动以发起web搜索减少了用户在构建完整的搜索查询之前意外地或者过早地执行web搜索的可能性。因此,可以避免用户错误,并且可以节省计算设备100和/或远程计算机系统(例如,搜索引擎、web服务、基于云的服务等)的处理资源。

可以理解,根据所描述的实施例来构建搜索查询提供了各种附属物和/或技术优点。作为说明而非限制,各种特征和实现方式在构建搜索查询时减少了用户错误和/或促进了计算设备100的单手操作。在查询输入阶段期间向用户呈现许多和多样化的自动建议候选(例如,自动建议候选150a至150r,截短的自动建议候选170a至170z,截短的自动建议候选180a至180v,截短的自动建议候选190a至190k等)鼓励用户不是通过易于出现用户错误的在虚拟键盘110上进行键入、而是通过从自动建议窗口140进行选择来构建搜索查询。

与虚拟键盘110上的小字符键相比,自动建议窗口140提供较大的触摸区域,这促进接收触摸输入。附加地,自动建议窗口140包括若干行的自动建议候选,其中一个或者多个行包含多个自动建议候选,这增加了用户感兴趣的自动建议候选将被显示和触摸的可能性。通过支持多种不同语言和/或用于将拉丁语、非拉丁语和/或输入法字符(例如,拼音字符)映射到一个或者多个翻译、转换和/或音译的ime(或者类似ime)的功能来改善建议多样性。截短的自动建议候选(例如,截短的自动建议候选170a至170z,截短的自动建议候选180a至180v,截短的自动建议候选190a至190k等)提供较短的自动建议候选,这促进阅读并且允许自动建议窗口140容纳更多数量的自动建议候选。

在经由虚拟键盘110最初提供少量的用户输入(例如,字的字符、单个字等)之后,用户可以利用对自动建议窗口140的少量触摸来构建并完成搜索查询而无需进一步使用虚拟键盘110。此外,将用户选择的自动建议候选(例如,自动建议候选150a,截短的自动建议候选170h,截短的自动建议候选180o等)移动到搜索框120,而并不自动地发起web搜索,这减少了用户在构建完整的搜索查询之前意外地或者过早地执行web搜索并且节省了计算设备100和/或远程计算机系统(例如,搜索引擎、web服务、基于云的服务等)的处理资源的可能性。当被触摸时将自动建议候选移动到搜索框120也避免了使用方向键进行导航的需要,对于移动设备而言方向键未被包括在虚拟键盘(例如,虚拟键盘110)上。附加地,将自动建议候选移动到搜索框120而无需使用箭头或者加号(+)图标,这些图标在期望时难以准确地触摸并且容易错误地触摸——特别是在小型触摸屏设备的单手操作期间。

示例性架构

图2图示了根据所描述的主题内容的作为示例性架构的实施例的自动建议架构200。应当理解,自动建议架构200或者其部分可以由各种组件、计算设备和/或计算机系统实现。自动建议架构的组件可以由软件、硬件、固件或者它们的组合实现。在各种实施例中,自动建议架构200的组件可以由计算机可执行指令实现,所述计算机可执行指令被存储在一个或者多个计算机可读存储介质上并且由一个或者多个处理器、计算设备和/或计算机系统执行以根据所描述的主题内容的各个方面来执行特定任务或者实现特定数据类型。

参见图2并且继续参考前述附图,自动建议架构200可以包括被配置为显示用户界面101的呈现组件210。呈现组件210可以由计算设备100或者其他合适的客户端侧的计算设备根据所描述的主题内容的各个方面实现。备选地或者附加地,呈现组件210或者其部分可以由实现搜索引擎和/或具有自动建议功能的其他web服务(例如,基于云的服务)的远程计算机系统实现。

呈现组件210可以被配置为接收和响应使用一种或者多种类型的字符(例如,拉丁语字符,输入法字符、非拉丁语字符等)和/或以一个或者多个语言提供的用户输入(例如,触摸输入、语音输入、手写输入等)。呈现组件210可以支持ime或者类似ime的功能,并且可以被配置为根据用于非拉丁语(例如,中文、日语、韩语、越南语、印度语等)的输入法来接收和解释拉丁语击键。呈现组件210可以被配置为通过提交针对搜索项(例如,搜索项121)和/或搜索查询(例如,初步搜索查询124、修改的搜索查询125、修改的搜索查询126、完整的搜索查询等)的一个或者多个请求(例如,web请求、http请求)来响应用户输入。

自动建议架构200可以包括自动建议组件220,该自动建议组件220被配置为响应于从呈现组件210接收到的针对搜索项和/或搜索查询的请求来提供自动建议候选(例如,初始自动建议候选、新的自动建议候选、更新的自动建议候选等)。自动建议组件220可以由提供搜索引擎和/或具有自动建议功能的web服务(例如,基于云的服务)的远程计算机系统实现。备选地或者附加地,自动建议组件220或者其部分可以由计算设备100或者其他合适的客户端侧的计算设备实现。

在各种场景下,呈现组件210可以当或者在用户键入、说出和/或手写一个或者多个字时和/或响应于用户选择的自动建议候选而向自动建议组件220提交请求。作为响应,自动建议组件220可以从建议字典222或者映射到搜索项或者搜索查询的字符和/或字的字和短语的其他库获得自动建议候选。自动建议组件220可以基于在某一时间段内在用户群体之中的相关性和/或流行程度、各种类型的用户相关数据(例如,由用户实施的过去搜索、计算设备100的地理位置、用户偏好、用户简档)和/或与相关性有关的其他因素来提供自动建议候选。可以采用对用户隐私和用户相关数据的保护感兴趣的各种机制,如上所述。

由自动建议组件220提供的自动建议候选可以包括搜索项或者搜索查询的一个或者多个翻译、转换和/或音译。一些自动建议候选可以基于另一个自动建议候选(例如,翻译、转换、音译等)。自动建议组件220可以将自动建议候选提供为可以伴随有针对每个自动建议候选的元数据(例如,排名、分数、长度等)的排名列表。自动建议组件220可以提供比可以适合于自动建议窗口140内的更多的自动建议候选和/或最终不被选择用于显示的某些更新的自动建议候选。在各种实现方式中,自动建议候选可以以公共前缀开始,诸如搜索项、搜索项的翻译、搜索项的转换、搜索项的音译和/或搜索查询。

自动建议架构200可以包括截短组件230,其被配置为从新的和/或更新的自动建议候选生成截短的自动建议候选。截短组件230可以通过识别、提取和/或以其他方式移除公共前缀(例如,搜索项、搜索项的翻译、搜索项的转换、搜索项的音译、和/或搜索查询)来从新的和/或更新的自动建议候选生成截短的自动建议候选。在一些实施例中,截短组件230可以由计算设备100(或者其他合适的客户端侧的计算设备)实现,并且可以从呈现组件210接收新的和/或更新的自动建议候选。在其他实施例中,截短组件230可以由远程计算机系统(例如,搜索引擎和/或具有自动建议功能的其他web服务)实现,并且可以从自动建议组件220接收新的和/或更新的自动建议候选。

呈现组件210可以被配置为选择和/或布置从自动建议组件220接收的自动建议候选和从截短组件230接收的截短的自动建议候选。呈现组件210可以选择或者排除某些自动建议候选或者截短的自动建议候选以增加建议多样性。呈现组件210可以基于排名和/或长度来布置自动建议候选或者截短的自动建议候选,并且可以向用户呈现尽可能多的选择。在各种实现方式中,可以显示若干行的自动建议候选或者截短的自动建议候选,其中一个或者多个行包括多个自动建议候选或者多个截短的自动建议候选。

呈现组件210可以将用户选择的自动建议候选和/或用户选择的截短的自动建议候选移动到搜索框120而并不自动地发起web搜索。呈现组件210可以将用户选择的截短的自动建议候选附加到可以包括用户选择的自动建议候选(例如,一个或者多个搜索项的转换和/或音译)的搜索查询。呈现组件210可以显示从用户选择的自动建议候选和/或截短的自动建议候选构建的完整的搜索查询。响应于用户采取行动来发起web搜索,呈现组件210可以提交针对完整的搜索查询的请求。

自动建议架构200可以包括搜索引擎240,其被配置为响应于从一个或者多个用户选择的截短的自动建议候选构建的完整的搜索查询来提供搜索结果。搜索引擎240可以从远程资源242获得搜索结果,远程资源242诸如:服务器托管的资源、基于云的资源、在线资源、远程数据存储库、远程数据库、远程储存库、web服务、网站、网页、web内容以及/或者其他类型的web资源。在各种实现方式中,搜索结果可以包括serp,其包括与完整的搜索查询相关的网页的链接。

示例性过程

继续参考前述附图,下面描述示例性过程以进一步说明所描述的主题内容的各个方面。应当理解,以下示例性过程并不旨在将所描述的主题内容限制于特定实现。

图3图示了根据所描述的主题内容的各个方面的作为示例性过程的实施例的计算机实现的方法300。在一个实现方式中,计算机实现的方法300可以由诸如计算设备100或者其他合适的客户端侧的计算设备之类的计算设备执行。应当理解,计算机实现的方法300或者其部分可以由各种计算设备、计算机系统、组件和/或被存储在另一个计算机可读存储介质上的计算机可执行指令执行。

在301处,计算设备可以显示用户界面。例如,计算设备100可以显示用户界面101或者用于允许用户构建和提交搜索查询的其他合适的搜索界面。用户界面101可以包括用于响应于用户输入来显示一个或者多个搜索项的搜索框120。用户界面101可以通过网页浏览和/或其他类型的应用而被呈现,并且可以被配置为接收和响应触摸输入、语音输入、手写输入和/或用户输入的类型。用户界面101可以支持使用一种或者多种类型的字符(例如,拉丁语字符、输入法字符、非拉丁语字符等)和/或以一种或者多种语言(例如,英语、中文、日语、韩语、越南语、印度语等)提供的用户输入。

在302处,计算设备可以基于用户输入来显示一个或者多个搜索项。例如,计算设备100可以基于经由虚拟键盘110的用户输入来显示搜索项121。可以在搜索框120内显示一个或者多个搜索项(例如,搜索项121)。为了发起web搜索,可以要求用户采取行动,诸如触摸搜索按钮122、录入键113或者在计算设备100上的物理搜索按钮102。用户可以触摸搜索框120来使用一种或者多种类型的用户输入编辑一个或者多个搜索项。

在303处,计算设备可以显示初始自动建议候选。例如,计算设备100可以显示初始自动建议候选150a至150r。初始自动建议候选可以被显示在行141至146中,其中一个或者多个行包括多个初始自动建议候选。初始自动建议候选可以基于排名和/或长度而被布置在行内。在某些情况下,可以使用拉丁语字符来显示一个或者多个搜索项,并且初始自动建议候选可以包括一个或者多个搜索项到非拉丁语字符的一个或者多个转换。初始自动建议候选可以包括一个或者多个短语,所述短语使用非拉丁语字符来显示并且以后面跟着一个或者多个字的转换中的一个转换开始。

在304处,计算设备可以检测用户选择的初始自动建议候选。例如,计算设备100可以检测对被呈现在行141内的自动建议候选150a的触摸。用户选择的初始自动建议候选可以从被显示在同一行中的若干初始自动建议候选中的一个初始自动建议候选选择。在某些情况下,用户选择的初始自动建议候选可以是一个或者多个搜索项的转换或者音译和/或以这样的转换开始的短语。

在305处,计算设备可以显示初步搜索查询而并不发起web搜索。例如,计算设备100可以在搜索框120中显示初步搜索查询124。用户选择的初始自动建议候选可以被显示为初步搜索查询并且替换一个或者多个搜索项,而并不自动地发起针对初步搜索的web搜索查询。

在306处,计算设备可以接收具有初步搜索查询作为公共前缀的新的自动建议候选。例如,计算设备100可以从实现搜索引擎和/或具有自动建议功能的其他web服务(例如,基于云的服务)的远程计算机系统接收以与初步搜索查询(和用户选择的初始自动建议候选)相同的字符开始的新的自动建议候选。新的自动建议候选可以由指示排名和/或长度的元数据来进行排名和/或伴随。新的自动建议候选可以被接收而并不被显示。

在307处,计算设备可以通过移除公共前缀来生成截短的自动建议候选。例如,计算设备100可以从新的自动建议候选生成截短的自动建议候选170a至170z。可以从每个新的自动建议候选识别和提取公共前缀或者初步搜索查询。每个截短的自动建议候选的长度将短于其对应的新的自动建议候选,从而允许显示更多截短的自动建议候选。

在308处,计算设备可以显示截短的自动建议候选。例如,计算设备100可以在行141至146内显示截短的自动建议候选170a至170z,其中一个或者多个行包括多个截短的自动建议候选。截短的自动建议候选可以基于排名和/或长度而被布置在行内。可以在截短的自动建议候选附近显示初步搜索查询,这为较短的短语提供了上下文。

在309处,计算设备100可以检测用户选择的截短的自动建议候选。例如,计算设备100可以检测对被呈现在行142内的截短的自动建议候选170h的触摸。用户选择的截短的自动建议候选可以从被显示在同一行中的若干截短的自动建议候选中的一个截短的自动建议候选选择。

在310处,计算设备可以显示修改的搜索查询而并不发起web搜索。例如,计算设备100可以在搜索框120中显示修改的搜索查询125。用户选择的截短的自动建议候选可以被移动到搜索框120并且被附加到初步搜索查询以构建修改的搜索查询。为了发起针对修改的搜索查询的web搜索,可能需要用户采取行动,诸如触摸搜索按钮122、录入键113或者在计算设备100上的物理搜索按钮102。用户可以触摸搜索框120来使用一种或者多种类型的用户输入编辑修改搜索查询。

在311处,计算设备可以接收具有修改的搜索查询作为公共前缀的更新的自动建议候选。例如,计算设备100可以从实现搜索引擎和/或具有自动建议功能的其它web服务(例如,基于云的服务)的远程计算机系统接收以与修改的搜索查询(和用户选择的初始自动建议候选和用户选择的截短的自动建议候选)相同的字符开始的更新的自动建议候选。更新的自动建议候选可以由指示排名和/或长度的元数据来进行排名和/或伴随。更新的自动建议候选可以被接收而并不被显示。

在311之后,计算设备可以重复前述操作,直到从一个或者多个用户选择的截短的自动建议候选构建完整的搜索查询。响应于用户采取诸如触摸搜索按钮122、录入键113或者物理搜索按钮102的动作,计算设备可以发起和/或启动针对完整的搜索查询的web搜索。计算设备可以接收并且显示搜索结果,诸如包括到与完整的搜索查询相关的网页的链接的一个或者多个serp。

图4图示了根据所描述的主题内容的各个方面的作为示例性过程的实施例的计算机实现的方法400。在一些实现方式中,计算机实现的方法300可以由计算设备100或者其他合适的客户端侧的计算设备执行。在其他实现方式中,计算机实现的方法400可以由提供搜索引擎和/或具有自动建议功能的其他web服务(例如,基于云的服务)的计算机系统的一个或者多个服务器侧的计算设备执行。应当理解,计算机实现的方法400或者其部分可以各种计算设备、计算机系统、组件和/或由存储在另一个计算机可读存储介质上的计算机可执行指令执行。

在401处,计算设备可以接收搜索查询而并不发起针对搜索查询的web搜索。作为示例,计算设备100可以实现呈现组件210,并且可以接收初步搜索查询124、修改的搜索查询125和/或修改的搜索查询126(例如,在搜索框120内)并将其呈现在用户界面101中而并不发起web搜索。作为另一示例,计算机系统的计算设备可以实现自动建议组件220,并且可以作为由呈现组件210提交针对自动建议候选的请求的一部分(例如,web请求、http请求)来接收初步搜索查询124、修改的搜索查询125和/或修改的搜索查询126。自动提供组件220可以通过基于搜索查询提供自动建议候选来对该请求进行响应,而并不发起针对该搜索查询的web搜索。

在402处,计算设备可以获得具有搜索查询作为公共前缀的自动建议候选。作为示例,计算设备100可以实现呈现组件210,并且可以接收包括以初步搜索查询124、修改的搜索查询125和/或修改的搜索查询126开始的短语的自动建议候选。作为另一示例,计算机系统的计算设备可以实现自动建议组件220并且从建议字典222中检索以初步搜索查询124、修改的搜索查询125和/或修改的搜索查询126开始的短语。

在403处,计算设备可以通过从自动建议候选移除搜索查询来生成截短的自动建议候选。例如,计算设备100或者计算机系统的计算设备可以实现截短组件230,并且可以通过从新的自动建议候选移除初步搜索查询124来生成截短的自动建议候选170a至170z。也可以通过从更新的自动建议候选移除修改的搜索查询125来生成截短的自动建议候选180a至180v,并且可以通过从更新的自动建议候选移除修改的搜索查询125来生成截短的自动建议候选190a至190k。

在404处,计算设备可以提供截短的自动建议候选以用于显示。例如,计算设备100或者计算机系统的计算设备可以实现截短组件230,并且可以提供截短的自动建议候选170a至170z、截短的自动建议候选180a至180v和/或截短的自动建议候选190a至190k。截短组件230可以向呈现组件210提供截短的自动建议组件,呈现组件210继而可以提供这样的截短的自动建议组件以用于在自动建议窗口140的行内显示。一个或者多个行的自动建议窗口140可以包括多个截短的自动建议候选。

在404之后,计算设备可以重复前述操作,直到从一个或者多个用户选择的截短的自动建议候选构建完整的搜索查询。

在405处,计算设备可以发起针对完整的搜索查询的web搜索。作为示例,计算设备100可以实现呈现组件210,并且可以响应于用户采取诸如触摸搜索按钮122、输入或者搜索(searchfor)键113或者物理搜索按钮102之类的动作来启动针对完整的搜索查询的web搜索。作为另一示例,计算机系统的计算设备可以实现搜索引擎240,并且可以响应于来自呈现组件210的请求来启动针对完整的搜索查询的web搜索。来自搜索引擎240的搜索结果可以被提供给计算设备100并且由计算设备100显示为包括到与完整的搜索查询相关的网页的链接的一个或者多个serp。

示例性操作环境

所描述的主题内容的各个方面可以针对和/或通过各种操作环境、计算机网络、平台、框架、计算机架构和/或计算设备而被实现。所描述的主题内容的各个方面可以由计算机可执行指令实现,该计算机可执行指令可由一个或者多个计算设备、计算机系统和/或处理器执行。

在其最基本的配置中,计算设备和/或计算机系统可以包括至少一个处理单元(例如,单处理器单元、多处理器单元、单核单元和/或多核单元)和存储器。取决于计算机系统或者计算设备的确切配置和类型,由计算设备和/或计算机系统实现的存储器可以是易失性的(例如,随机存取存储器(ram))、非易失性的(例如,只读存储器(rom)、闪存等)或者它们的组合。

计算设备和/或计算机系统可以具有附加特征和/或功能。例如,计算设备和/或计算机系统可以包括诸如附加存储装置(例如,可移除的和/或不可移除的)之类的硬件,包括但不限于:固态、磁盘、光盘或者磁带。

计算设备和/或计算机系统通常可以包括或者可以访问各种计算机可读介质。例如,计算机可读介质可以体现用于由计算设备和/或计算机系统执行的计算机可执行指令。计算机可读介质可以是可由计算设备和/或计算机系统访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和不可移除介质。如本文所使用的,术语“计算机可读介质”包括计算机可读存储介质和通信介质。

本文所使用的术语“计算机可读存储介质”包括用于存储诸如计算机可执行指令、数据结构、程序模块或者其他数据的信息的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质的示例包括但不限于:诸如ram、rom、电可擦除程序只读存储器(eeprom)、半导体存储器、动态存储器(例如,动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率同步动态随机存取存储器(ddrsdram)等)、集成电路、固态驱动器、闪存(例如、基于nan的闪存)、存储芯片、存储卡、记忆棒、拇指驱动器等的存储器存储设备;诸如蓝光光盘、数字视频光盘(dvd)、压缩盘(cd)、cd-rom、光盘盒等的光存储介质;包括硬盘驱动器、软盘、软盘、磁带盒、磁带等的磁存储介质;以及其他类型的计算机可读存储设备。可以理解,各种类型的计算机可读存储介质(例如,存储器和附加硬件存储装置)可以是计算设备和/或计算机系统的一部分。如本文所使用的,术语“计算机可读存储介质”和“多个计算机可读存储介质”并不意味以及明确地排除传播信号、调制数据信号、载波或者任何其它类型的瞬态计算机可读介质。

通信介质通常体现计算机可执行指令、数据结构、程序模块或者诸如载波或者其它传输机制的调制数据信号中的其他数据,并且包括任何信息传递介质。术语“调制数据信号”意指这样的信号,该信号具有以将信息编码在信号中的方式使它的特性中的一个或者多个特性被设置或者改变。作为示例而非限制,通信介质包括诸如有线网络或者直接有线连接之类的有线介质,以及诸如声学、射频、红外和其它无线介质之类的无线介质。

在各种实施例中,所描述的主题内容的各个方面可以由被存储在一个或者多个计算机可读存储介质上的计算机可执行指令实现。可以使用任何各种类型的合适的编程和/或标记语言来实现计算机可执行指令,例如:可扩展应用标记语言(xaml)、xml、xblhtml、xhtml、xslt、xmlhttprequestobject、css、文档对象模型(dom)javascript、javascript对象符号(json)、jscript、ecmascript、ajax、silverlighttm、visual(vb)、vbscript、php、asp、python、c、objective-c、c++、c#/.net和/或其他。

计算设备和/或计算机系统可以包括各种输入设备、输出设备、通信接口和/或其他类型的设备。示例性输入设备包括但不限于:用户接口、键盘/小键盘、触摸屏、触摸板、笔、鼠标、轨迹球、遥控器、游戏控制器、相机、条形码读取器、麦克风或者其他语音输入设备、视频输入设备、激光测距仪、运动感测设备、手势检测设备和/或其他类型的输入机制和/或设备。计算设备可以提供自然用户接口(nui),其使得用户能够以“自然”的方式与计算设备进行交互,而并不受诸如鼠标、键盘、遥控器等的输入设备所施加的人为约束。nui技术的示例包括但不限于:使用加速度计、陀螺仪和/或深度相机(例如,立体视觉或者飞行时间相机系统、红外相机系统、rgb相机系统和/或其组合)、头部和眼睛跟踪、注视跟踪、面部识别、3d显示、沉浸式增强现实和虚拟现实系统、使用电场感应电极(eeg和相关方法)用于感测大脑活动的技术、意图和/或目标理解、以及机器智能的、既在屏幕上又与屏幕相邻的运动和/或手势识别、语音和/或语音识别、触摸和/或手写识别。

计算设备可以被配置为取决于实现方式来以各种方式接收和响应输入。可以按照各种形式来呈现响应,例如:呈现用户界面、输出诸如图像、视频、多媒体对象、文档和/或其他类型的对象之类的对象;输出文本响应;提供与响应内容相关联的链接;输出计算机生成的语音响应或者其他音频;或者响应的其他类型的视觉和/或音频呈现。示例性输出设备包括但不限于:显示器、投影仪、扬声器、打印机和/或其它类型的输出机制和/或设备。

计算设备和/或计算机系统可以包括允许在其他计算设备和/或计算机系统之间或者之中进行通信的一个或者多个通信接口。通信接口可以在各种计算设备和/或计算机系统之间或者之中的网络通信的上下文中被使用。通信接口可以允许计算设备和/或计算机系统与其他设备、其他计算机系统、web服务(例如,附属web服务、第三方web服务、远程web服务等)、web服务应用和/或信息源(例如,附属信息源、第三方信息源、远程信息源等)进行通信。因此,通信接口可以在访问各种类型的资源、从各种类型的资源获取数据和/或与各种类型的资源协作的上下文中被使用。

通信接口也可以在通过网络或者网络组合分发计算机可执行指令的上下文中被使用。例如,可以利用远程计算机和存储设备来组合或者分发计算机可执行指令。本地或者终端计算机可以访问远程计算机或者远程存储设备并且下载计算机程序或者计算机程序的一个或者多个部分以用于执行。还可以理解,可以通过在本地终端处执行一些指令并且在远程计算机处执行一些指令来分发计算机可执行指令的执行。

计算设备可以由诸如以下的移动计算设备来实现:移动电话(例如,蜂窝电话、智能电话诸如电话appleiphone、电话、实现androidtm操作系统的电话、实现操作系统的电话或者实现移动操作系统的其他类型的电话)、平板计算机(例如,设备、appleipadtm、三星galaxypro或者其他类型的平板设备)、膝上型计算机、笔记本计算机、上网本计算机、个人数字助理(pda)、便携式媒体播放器、手持游戏机、可穿戴计算设备(例如,智能手表、头戴式设备包括诸如glasstm的智能眼镜、可穿戴显示器等)、个人导航设备、车辆计算机(例如,车载导航系统)、相机或者其他类型的移动设备。

计算设备可以由固定计算设备实现,诸如:台式计算机、个人计算机、服务器计算机、娱乐系统设备、媒体播放器、媒体系统或者控制台、视频游戏系统或者控制台、多功能系统或者控制台(例如,组合的多媒体和视频游戏系统或者控制台,诸如系统或者控制台、系统或者控制台、系统或者控制台、或者其他类型的多功能游戏系统或者控制台)、机顶盒、器具(例如电视机、冰箱、烹饪器具等)或者其它类型的固定计算设备。

计算设备还可以由其他类型的基于处理器的计算设备来实现,包括数字信号处理器、现场可编程门阵列(fpga)、程序和应用特定的集成电路(pasic/asic)、程序和应用特定的标准产品(pssp/assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。

计算设备可以包括和/或运行例如由计算设备的软件、固件、硬件、逻辑和/或电路所实现的一个或者多个计算机程序。可以按照各种方式将计算机程序分发到和/或安装在计算设备上。例如,计算机程序可以由原始设备制造商(oem)预先安装在计算设备上、作为另一个计算机程序的安装的一部分而被安装在计算设备上、从应用商店下载并且被安装在计算设备上、由系统管理员使用企业网络管理工具进行分发和/或安装、以及取决于实现方式来以各种其他方式进行分发和/或安装。

由计算设备实现的计算机程序可以包括一个或者多个操作系统。示例性操作系统包括但不限于:操作系统(例如,操作系统)、操作系统(例如,chromeostm操作系统或者androidtm操作系统)、苹果操作系统(例如,mac或者appleiostm操作系统)、开源操作系统或者适合在移动、固定和/或基于处理器的计算设备上运行的任何其他操作系统。

由计算设备实现的计算机程序可以包括一个或者多个客户端应用。示例性客户端应用包括但不限于:web浏览应用、通信应用(例如,电话应用、电子邮件应用、文本消息收发应用、即时消息收发应用、网络会议应用等)、媒体应用(例如,视频应用、电影服务应用、电视服务应用、音乐服务应用、电子书应用、照片应用等)、日历应用、文件共享应用、个人助理或者其他类型的对话应用、游戏应用、图形应用、购物应用、支付应用、社交媒体应用、社交联网应用、新闻应用、运动应用、天气应用、地图应用、导航应用、旅行应用、餐馆应用、娱乐应用、医疗保健应用、生活方式应用、参考应用、金融应用、商业应用、教育应用、生产力应用(例如,文字处理应用、电子表格应用、幻灯片演示应用、笔记本应用等)、安全应用、工具应用、实用性应用和/或适用于在移动、固定和/或基于处理器的计算设备上运行的任何其他类型的应用、应用程序和/或app。

由计算设备实现的计算机程序可以包括一个或者多个服务器应用。示例性服务器应用包括但不限于:与上述各种类型的示例性客户端应用中的任何客户端应用相关联的一个或者多个服务器托管的、基于云的、和/或在线的应用;上述各种类型的示例性客户端应用中的任何客户端应用的一个或者多个服务器托管的、基于云的、和/或在线的版本;被配置为提供web服务、网站、网页、web内容等的一个或者多个应用;被配置为提供和/或访问信息源、数据存储库、数据库、储存库等的一个或者多个应用;和/或适于在服务器计算机上运行的其他类型的应用、应用程序和/或app。

计算机系统可以由诸如服务器计算机之类的计算设备或者由被配置为实现服务的多个计算设备实现,在该多个计算设备中一个或者多个适当配置的计算设备可以执行一个或者多个处理步骤。计算机系统可以被实现为分布式计算系统,其中组件位于通过网络(例如,有线和/或无线)和/或其他形式的直接和/或间接连接而彼此连接的不同计算设备上。还可以经由基于云的架构(例如,公共、私有或者它们的组合)来实现计算机系统,其中通过共享数据中心来递送服务。计算机系统的一些组件可以被安置在云内,而其他组件被安置在云之外。

图5图示了作为可以实现所描述的主题内容的各个方面的示例性操作环境的实施例的操作环境500。应当理解,在各种实施例中,操作环境500可以由客户端-服务器模型和/或架构以及由其他操作环境模型和/或架构实现。

操作环境500可以包括可以实现所描述的主题内容的各个方面的计算设备510。计算设备510可以包括处理器511和存储器512。计算设备510还可以包括附加的硬件存储装置513。应当理解,计算机可读存储介质包括存储器512和硬件存储装置513。

计算设备510可以包括输入设备514和输出设备515。输入设备314可以包括上述示例性输入设备和/或其他类型的输入机制和/或设备中的一个或者多个。输出设备515可以包括上述示例性输出设备和/或其他类型的输出机制和/或设备中的一个或者多个。

计算设备510可以包含允许计算设备510与其他计算设备和/或计算机系统通信的一个或者多个通信接口516。通信接口516也可以在分发计算机可执行指令的上下文中被使用。

计算设备510可以包括和/或运行例如由计算设备510的软件、固件、硬件、逻辑和/或电路实现的一个或者多个计算机程序517。计算机程序517可以包括例如由上述一个或者多个示例性操作系统实现的操作系统518和/或适于在计算设备510上运行的其他类型的操作系统。计算机程序517可以包括例如由上述一个或者多个示例性应用实现的一个或者多个应用519和/或适于在计算设备510上运行的其他类型的应用。

可以经由一个或者多个合适的接口(例如,api或者其他数据连接)来配置计算机程序517以与一个或者多个资源进行通信和/或协作。资源的示例包括计算设备510的本地计算资源和/或诸如服务器托管的资源、基于云的资源、在线资源、远程数据存储库、远程数据库、远程储存库、web服务、网站、网页、web内容和/或其他类型的远程资源之类的远程计算资源。

计算机程序517可以实现例如被存储在诸如存储器512或者硬件存储装置513之类的计算机可读存储介质中的计算机可执行指令。由计算机程序517实现的计算机可执行指令可以被配置为与操作系统518和应用519中的一个或者多个相结合地工作、支持和/或增强操作系统518和应用519中的一个或者多个。由计算机程序517实现的计算机可执行指令也可以被配置为提供一个或者多个分开的和/或独立的服务。

计算设备510和/或计算机程序517可以实现和/或执行所描述的主题内容的各个方面。如所示,计算设备510和/或计算机程序517可以包括自动建议代码520。在各种实施例中,自动建议代码520可以包括被存储在计算机可读存储介质上并且被配置为实现所描述的主题内容的一个或者多个方面的计算机可执行指令。作为示例而非限制,自动建议代码520可以由计算设备510实现,其继而可以代表计算设备100。作为进一步的示例而非限制,自动建议代码520可以实现自动建议架构200、计算机实现的方法300和/或计算机实现的方法400中的一个或者多个方面。

操作环境500可以包括计算机系统530,其可以实现所描述的主题内容的各个方面。计算机系统530可以由诸如一个或者多个服务器计算机之类的一个或者多个计算设备实现。计算机系统530可以包括处理器531和存储器532。计算机系统530还可以包括附加的硬件存储装置533。应当理解,计算机可读存储介质包括存储器532和硬件存储装置533。计算机系统530可以包括输入设备534和输出设备535。输入设备534可以包括上述示例性输入设备和/或其他类型的输入机制和/或设备中的一个或者多个。输出设备535可以包括上述示例性输出设备和/或其他类型的输出机制和/或设备中的一个或者多个。

计算机系统530可以包含允许计算机系统530与各种计算设备(例如,计算设备510)和/或其他计算机系统进行通信的一个或者多个通信接口536。通信接口536也可以在分发计算机可执行指令的上下文中被使用。

计算机系统530可以包括和/或运行例如由计算机系统530的软件、固件、硬件、逻辑和/或电路实现的一个或者多个计算机程序537。计算机程序537可以包括例如由上述一个或者多个示例性操作系统实现的操作系统538和/或适合于在计算机系统530上运行的其他类型的操作系统。计算机程序537可以包括例如由上述一个或者多个示例性应用实现的一个或者多个应用539和/或适于在计算机系统530上运行的其他类型的应用。

可以经由一个或者多个合适的接口(例如,api或者其他数据连接)来配置计算机程序537以与一个或者多个资源进行通信和/或协作。资源的示例包括计算机系统530的本地计算资源和/或诸如服务器托管的资源、基于云的资源、在线资源、远程数据存储库、远程数据库、远程储存库、web服务、网站、网页、web内容和/或其他类型的远程资源之类的远程计算资源。

计算机程序537可以实现例如被存储在诸如存储器532或者硬件存储装置533之类的计算机可读存储介质中的计算机可执行指令。由计算机程序537实现的计算机可执行指令可以被配置为与操作系统538和应用539中的一个或者多个相结合地工作、支持和/或增强操作系统538和应用539中的一个或者多个。由计算机程序537实现的计算机可执行指令也可以被配置为提供一个或者多个分开的和/或独立的服务。

计算系统530和/或计算机程序537可以实现和/或执行所描述的主题内容的各个方面。如所示,计算机系统530和/或计算机程序537可以包括自动建议代码540。在各种实施例中,自动建议代码540可以包括被存储在计算机可读存储介质上并且被配置为实现所描述的主题内容的一个或者多个方面的计算机可执行指令。作为示例而非限制,自动建议代码540可以由计算机系统530实现,其继而可以实现搜索引擎和/或具有自动建议功能的其他服务(例如,基于云的服务)。作为进一步的示例而非限制,自动建议代码540可以实现自动建议架构200和/或计算机实现的方法400的一个或者多个方面。

计算设备510和计算机系统530可以通过网络550进行通信,网络550可以由适于在计算设备510和计算机系统530之间提供通信的任何类型的网络或者网络组合实现。网络550可以包括(作为示例而非限制):诸如因特网之类的wan、lan、专用网络、公共网络、分组网络、电路交换网络、有线网络和/或无线网络。计算设备510和计算机系统530可以使用各种通信协议和/或数据类型来通过网络550进行通信。计算设备510的一个或者多个通信接口516和计算机系统530的一个或者多个通信接口536可以在通过网络550进行通信的上下文中被使用。

计算设备510和/或计算机系统540可以通过网络550来与存储系统560进行通信。备选地或者附加地,存储系统560可以与计算设备510和/或计算机系统530集成。存储系统560可以代表根据所描述的主题内容的各种类型的存储装置。例如,存储系统560可以实现自动建议字典和/或远程资源。存储系统560可以使用数据库存储装置、云存储装置、表存储装置、blob存储装置、文件存储装置、队列存储装置来为关系(例如、sql)和/或非关系(例如、no-sql)数据提供任何合适类型的数据存储和/或其他合适类型的存储机制。存储系统530可以由一个或者多个计算设备(例如,数据中心中的计算机集群、虚拟机)实现和/或被提供作为基于云的存储服务。

图6图示了作为可以实现所描述的主题内容的各个方面的示例性计算机系统的实施例的计算机系统600。在各种实现方式中,计算机系统600的部署和/或它的多个部署可以提供用于在一个物理主机服务器计算机上同时运行多个虚拟服务器实例的服务器虚拟化和/或用于在同一物理网络上同时运行多个虚拟网络基础设施的网络虚拟化。

计算机系统600可以由诸如提供硬件层610的一个或者多个物理服务器计算机之类的各种计算设备实现,硬件层610可以包括处理器611、存储器612和通信接口613。计算机系统600可以实现被配置为管理、控制和/或仲裁对硬件层610的访问的管理程序620。在各种实现方式中,管理程序620可以管理硬件资源以提供隔离的执行环境或者分区,诸如父(根)分区和一个或者多个子分区。父分区可以操作以创建一个或者多个子分区。每个分区可以被实现为用于隔离由管理程序620管理的处理器和存储器资源的抽象容器或者逻辑单元,并且可以被分配一组硬件资源和虚拟资源。逻辑系统可以映射到分区,并且逻辑设备可以映射到分区内的虚拟设备。

父分区和子分区例如可以实现虚拟机,诸如虚拟机630、640和650。每个虚拟机可以将物理计算设备或者计算机系统模拟为像物理机器一样执行程序的软件实现方式。每个虚拟机可以具有一个或者多个虚拟处理器,并且可以提供用于执行操作系统(例如,操作系统、操作系统、来自的操作系统、操作系统、开源操作系统等)的虚拟系统平台。如所示,父分区中的虚拟机630可以运行管理操作系统631,并且子分区中的虚拟机640、650可以托管访客操作系统641、651,访客操作系统641、651中的每一个例如被实现为全功能操作系统或者专用内核。每个访客操作系统641、651可以调度线程以分别在一个或者多个虚拟处理器上执行并且完成应用的实例642、652。

父分区中的虚拟机630可以经由设备驱动器632和/或其他合适的接口来对硬件层610进行访问。然而,子分区中的虚拟机640、650通常不能访问硬件层610。相反,这样的虚拟机640、650被呈现有硬件资源的虚拟视图,并且由父分区中的虚拟机630提供的虚拟化服务支持。父分区中的虚拟机630可以托管提供包括经由设备驱动器632访问硬件层610的虚拟化管理功能的虚拟化堆栈633。虚拟化堆栈633可以实现和/或操作为虚拟化服务提供者(vsp)以处理来自由操作在子分区中的虚拟机640、650中的一个或者多个虚拟化堆栈643、653实现的虚拟化服务客户端(vsc)的请求以及向它们提供各种虚拟化服务。

计算机系统600可以实现和/或执行所描述的主题内容的各个方面。作为示例而非限制,一个或者多个虚拟机640、650可以实现搜索引擎和/或具有自动建议功能的其他服务(例如,基于云的服务)。作为进一步的示例而非限制,一个或者多个虚拟机640、650可以实现自动建议架构200和/或计算机实现的方法400的一个或者多个方面。此外,硬件层610可以由计算机系统530的一个或者多个计算设备实现。

图7图示了作为可以实现所描述的主题内容的各个方面的示例性移动计算设备的实施例的移动计算设备700。在一个实现方式中,移动计算设备700可以是计算设备100的示例。

如所示,移动计算设备700包括可以彼此通信的各种硬件和软件组件。移动计算设备700可以表示本文所描述的各种类型的移动计算设备中的任何移动计算设备,并且可以允许诸如一个或者多个移动通信网络(例如,蜂窝和/或卫星网络)之类的网络上的无线双向通信、lan、和/或wan。

移动计算设备700可以包括操作系统702和各种类型的移动应用704。在一些实现方式中,移动应用704可以包括自动建议架构200的一个或者多个客户端应用和/或组件,诸如呈现组件220、截短组件230等等。

移动计算设备700可以包括用于执行诸如以下任务的处理器706(例如,信号处理器、微处理器、asic或者其他控制和处理逻辑电路):信号编码、数据处理、输入/输出处理、功率控制和/或其他功能。

移动计算设备700可以包括被实现为不可移除存储器710和/或可移除存储器712的存储器708。不可移除存储器710可以包括ram、rom、闪存、硬盘或者其他存储器设备。可移除存储器712可以包括闪存、订户身份模块(sim)卡、“智能卡”和/或其他存储器设备。

存储器708可以用于存储用于运行操作系统702和/或移动应用程序704的代码和/或数据。示例数据可以包括要经由一个或者多个有线和/或无线网络被发送到和/或从一个或者多个网络服务器或者其他设备接收的网页、文本、图像、声音文件、视频数据或者其他数据。存储器708可以用于存储诸如国际移动用户标识(imsi)的订户标识符以及诸如国际移动设备标识符(imei)的设备标识符。这样的标识符可以被发送到网络服务器以识别用户和设备。

移动计算设备700可以包括和/或支持一个或者多个输入设备714,诸如触摸屏715、麦克风716、相机717、键盘718、轨迹球719和其他类型的输入设备(例如,自然用户接口(nui)设备等))。触摸屏715可以例如使用电容式触摸屏和/或光学传感器来检测触摸输入从而被实现。移动计算设备700可以包括和/或支持一个或者多个输出设备720,诸如扬声器721、显示器722和/或其他类型的输出设备(例如,压电或者其他触觉输出设备)。在一些实现方式中,触摸屏715和显示器722可以被组合在单个输入/输出设备中。

移动计算设备700可以包括可以被耦合到天线(未示出)并且可以支持处理器706和外部设备之间的双向通信的无线调制解调器724。无线调制解调器724可以包括用于与移动通信网络和/或其他基于无线电的调制解调器(例如,wi-fi726和/或蓝牙727)进行通信的蜂窝调制解调器725。通常,无线调制解调器724中的至少一个无线调制解调器被配置用于:与诸如gsm网络之类的一个或者多个蜂窝网络的用于单个蜂窝网络内的数据和语音通信的通信;蜂窝网络之间的通信;或者移动计算设备700与公共交换电话网(pstn)之间的通信。

移动计算设备700还可以包括至少一个输入/输出端口728、电源730、加速度计732、物理连接器734(例如,usb端口、ieee1394(火线)端口、rs-232端口等)和/或全球定位系统(gps)接收机736或者其他类型的卫星导航系统接收机。可以理解,移动计算设备700的所示组件不是必需的或者全部包含的,因为在各种实施例中可以省略各种组件,并且可以包括其他组件。

在各种实现方式中,移动计算设备700的组件可以被配置为执行结合计算设备100所描述的各种操作。在一个示例实施例中,用于执行此类操作的计算机可执行指令可以被存储在诸如例如存储器708之类的计算机可读存储介质中,并且可以由处理器706执行。

图8图示了作为可以实现所描述的主题内容的各个方面的示例性计算环境的实施例的计算环境800。如所示,计算环境800包括计算机810形式的通用计算设备。在各种实现方式中,计算机810可以是计算设备100、计算设备510和/或计算机系统530的计算设备的示例。

计算机810可以包括各种组件,其包括但不限于:处理单元820(例如,一个或者多个处理器或者类型的处理单元)、系统存储器830和系统总线821,系统总线821耦合包括系统存储器830到处理单元820的各种系统组件。

系统总线821可以是使用各种总线架构中的任何一种的若干类型的总线结构中的任何一种,其包括存储器总线或者存储器控制器、外围总线和本地总线。作为示例而非限制,这种架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线和也被称为夹层总线的外围组件互连(pci)总线。

系统存储器830包括诸如rom831和ram832之类的易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统(bios)833包含诸如在启动期间有助于在计算机810内的元件之间传送信息的基本例程,其通常被存储在rom831中。ram832通常包含可由处理单元820立即访问和/或当前正在由处理单元820操作的数据和/或程序模块。作为示例而非限制,示出了操作系统834、应用程序835、其他程序模块836和程序数据837。

计算机810还可以包括其他可移除/不可移除和/或易失性/非易失性计算机存储介质。仅作为示例,图8图示了从不可移除的非易失性磁性介质读取或者向它们写入的硬盘驱动器841、从可移除的非易失性磁盘852读取或者向它们写入的磁盘驱动器851以及从诸如cdrom或者其他光学介质的可移除的非易失性光盘856读取或者向它们写入的光盘驱动器855。可以在示例性操作环境中使用的其他可移除的/不可移除的、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态ram、固态rom等。硬盘驱动器841通常通过诸如接口840的不可移除存储器接口而被连接到系统总线821,并且磁盘驱动器851和光盘驱动器855通常通过诸如接口850的可移除存储器接口而被连接到系统总线821。

备选地或者附加地,本文所描述的功能可以至少部分地由一个或者多个硬件逻辑组件执行。作为示例而非限制,可以使用的图示类型的硬件逻辑组件包括例如fpga、pasic/asic、pssp/assp、soc和cpld。

上面讨论并在图8中图示出的驱动器及其相关联的计算机存储介质为计算机810提供对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,硬盘驱动器841被图示为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可以与操作系统834、应用程序835、其他程序模块836和程序数据837相同或者不同。操作系统844、应用程序845、其他程序模块846和程序数据847在这里被给出不同的数字来至少图示出它们是不同的副本。

用户可以通过诸如键盘862、麦克风863和诸如鼠标、轨迹球或者触摸板的指点设备861的输入设备来将命令和信息输入到计算机810中。其他输入设备(未示出)可以包括触摸屏操纵杆、游戏垫、卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口860而被连接到处理单元820,但是可以通过诸如并行端口、游戏端口或者通用串行总线(usb)的其他接口和总线结构来进行连接。

视觉显示器891或者其他类型的显示设备也经由诸如视频接口890之类的接口而被连接到系统总线821。除了监视器之外,计算机还可以包括诸如扬声器897和打印机896之类的其他外围输出设备,它们可以通过输出外围接口895而被连接。

使用到诸如远程计算机880的一个或者多个远程计算机的逻辑连接在联网环境中操作计算机810。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络pc、对等设备或者其他公共网络节点,并且通常包括相对于计算机810而在上面描述的许多或者所有单元。所描绘的逻辑连接包括局域网(lan)871和广域网(wan)873,但也可以包括其他网络。这样的联网环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。

当在lan联网环境中被使用时,通过网络接口或者适配器870而将计算机810连接到lan871。当在wan联网环境中被使用时,计算机810通常包括调制解调器872或者用于通过诸如互联网的wan873建立通信的其他装置。调制解调器872可以是内部或者外部的,其可以经由用户输入接口860或者其他适当的机制而被连接到系统总线821。在联网环境中,相对于计算机810描绘的程序模块或者它们的部分可以被存储在远程存储器存储设备中。作为示例而非限制,远程应用程序885被示出为驻留在远程计算机880上。应当理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。

支持的各个方面

上面结合附图提供的详细描述明确描述并支持根据所描述的主题内容的各个方面。作为说明而非限制,所支持的各个方面包括用于在构建搜索查询时减少用户错误的计算设备,所述计算设备包括:被配置为执行计算机可执行指令的处理器;以及存储计算机可执行指令的存储器,所述计算机可执行指令被配置为:显示包括搜索框的用户界面;基于用户输入来在搜索框内显示一个或者多个搜索项;显示初始自动建议候选;检测用户选择的初始自动建议候选;在搜索框内将用户选择的初始自动建议候选显示为初步搜索查询,而并不自动地发起针对初步搜索查询的web搜索;接收具有初步搜索查询作为公共前缀的新的自动建议候选;通过从每个新的自动建议候选移除公共前缀来生成截短的自动建议候选;以及显示截短的自动建议候选。

所支持的各个方面包括前述计算设备,其中:所述存储器还存储被配置为执行以下各项的计算机可执行指令:检测用户选择的截短的自动建议候选;以及通过将用户选择的截短的自动建议候选附加到初步搜索查询而在搜索框内显示修改的搜索查询,而并不自动发起针对修改的搜索查询的web搜索。

所支持的各个方面包括任何前述的计算设备,其中所述存储器还存储被配置为执行以下各项的计算机可执行指令:接收具有所述修改的搜索查询作为公共前缀的更新的自动建议候选;通过从每个更新的自动建议候选移除公共前缀来生成截短的自动建议候选;以及将用户选择的截短的自动建议候选附加到修改的搜索查询。

所支持的各个方面包括任何前述的计算设备,其中所述存储器还存储被配置为执行以下各项的计算机可执行指令:响应于对搜索按钮的触摸来发起针对完整的搜索查询的web搜索,其中所述完整的搜索查询从一个或者多个用户选择的截短的自动建议候选被构建。

所支持的各个方面包括任何前述的计算设备,其中:所述一个或者多个搜索项使用拉丁语字符被显示,并且所述初始自动建议候选包括所述一个或者多个搜索项到非拉丁语字符的多个转换。

所支持的各个方面包括任何前述的计算设备,其中:初始自动建议候选中的至少一个初始自动建议候选包括使用非拉丁语字符被显示并且以跟随有一个或者多个字的转换中的一个转换开始的短语。

所支持的各个方面包括任何前述的计算设备,其中:初始自动建议候选被显示在行内,并且所述行中的一个或者多个行包括多个初始自动建议候选。

所支持的各个方面包括任何前述的计算设备,其中:截短的自动建议候选被显示在行内,并且所述行中的一个或者多个行包括多个截短的自动建议候选。

所支持的各个方面包括任何前述的计算设备,其中:截短的自动建议候选基于排名和长度而被布置在所述行内。

所支持的各个方面还包括装置、计算机可读存储介质、计算机实现的方法和/或用于实现前述任何计算机设备或者其部分的装置。

所支持的各个方面包括用于在构建搜索查询时减少用户错误的计算机实现的方法,所述计算机实现的方法包括:由计算设备接收搜索查询而并不发起针对搜索查询的web搜索;由所述计算设备获得具有搜索查询作为公共前缀的自动建议候选;由所述计算设备通过从所述自动建议候选移除所述搜索查询来生成截短的自动建议候选;以及供截短的自动建议候选以用于显示。

所支持的各个方面包括前述的计算机实现的方法,其中所述搜索查询被接收并且被呈现在用户界面的搜索框中。

所支持的各个方面包括任何前述的计算机实现的方法,其中搜索查询包括一个或者多个搜索项的音译。

所支持的各个方面包括任何前述的计算机实现的方法,其中搜索查询包括一个或者多个用户选择的截短的自动建议候选。

所支持的各个方面包括任何前述的计算机实现的方法,其中所述自动建议候选从建议字典被获得。

所支持的各个方面包括任何前述的计算机实现的方法,其中:截短的自动建议候选被显示在行内,并且所述行中的一个或者多个行包括多个截短的自动建议候选。

所支持的各个方面包括任何前述的计算机实现的方法,还包括:从一个或者多个用户选择的截短的自动建议候选构建完整的搜索查询。

所支持的各个方面包括任何前述的计算机实现的方法,还包括:发起针对从一个或者多个用户选择的截短的自动建议候选构建的完整的搜索查询的web搜索。

所支持的各个方面还包括系统、装置、计算机可读存储介质和/或用于实现和/或执行前述计算机实现的任何方法或者其部分的装置。

所支持的各个方面包括存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被计算设备执行时使得所述计算设备实现截短组件,其中所述截短组件被配置为:从自动建议组件接收针对搜索查询的自动建议候选,所述自动建议候选具有搜索查询作为公共前缀;通过从自动建议候选移除公共前缀来生成截短的自动建议候选;以及将截短的自动建议候选提供给呈现组件以用于显示。

所支持的各个方面包括前述的计算机可读存储介质,其进一步存储实现所述呈现组件的计算机可执行指令,其中所述呈现组件被配置为:根据用于非拉丁语的输入法来解释拉丁语击键;基于排名和长度来布置截短的自动建议;在行内显示截短的自动建议候选,其中所述行中的一个或者多个行包括多个截短的自动建议候选;将用户选择的截短的自动建议候选移动到搜索框,而并不自动地发起web搜索;以及将用户选择的截短的自动建议候选附加到搜索查询。

所支持的各个方面包括任何前述的计算机可读存储介质,进一步存储实现自动建议组件和搜索引擎的计算机可执行指令,其中:自动建议组件被配置为提供自动建议候选,所述自动建议候选包括搜索项到非拉丁语字符的多个转换;并且搜索引擎被配置为响应于从一个或者多个用户选择的截短的自动建议候选构建的完整的搜索查询来提供搜索结果。

可以理解,根据所描述的实施例的所支持的各个方面提供各种附属物和/或技术优点。作为说明而非限制,各种特征和实现方式在构建搜索查询时减少用户错误和/或促进计算设备的单手操作。在查询输入阶段向用户呈现许多且多样化的自动建议候选,鼓励用户不是通过易于出现用户错误的键入而是通过进行触摸选择来构建搜索查询。与小键盘按键相比,提供更大的触摸区域促进接收触摸输入。包含若干行自动建议候选,其中一个或者多个行包含多个自动建议候选,这增加了用户感兴趣的自动建议候选将被显示和触摸的可能性。通过支持多种不同语言和/或用于将拉丁语、非拉丁语和/或输入法字符(例如,拼音字符)映射到一个或者多个翻译、转换和/或音译ime(或者类似ime)的功能来改善建议多样性。截短的自动建议候选提供较短的自动建议候选,这促进阅读并且允许显示更多数量的自动建议候选。

各种特征和实现方式使用户能够通过提供少量的键盘输入并进行触摸选择而并不进一步使用键盘来构建和完成搜索查询。将用户选择的自动建议候选移动到搜索框而并不自动地发起web搜索,这减少了用户在构建完整的搜索查询之前意外地或者过早地执行web搜索的可能性并节省了计算设备远程计算机系统的处理资源。当被触摸时将用户选择的自动建议候选移动到搜索框也避免了使用方向键进行导航的需要,对于移动设备而言方向键未被包括在虚拟键盘上。可以将自动建议候选移动到搜索框,而无需使用箭头或者加号(+)图标,这些图标在期望时难以准确地触摸并且容易错误地触摸,特别是在对小型触摸屏设备的单手操作期间。

上面结合附图提供的详细描述旨在作为对示例的描述,而并不旨在表示在其中可以构建或者利用本示例的唯一形式。

应当理解,本文所描述的配置和/或方法本质上是示例性的,并且所描述的实施例、实现方式和/或示例不被认为是限制性的,因为许多变型是可能的。本文所描述的具体过程或者方法可以表示任何数量的处理策略中的一个或者多个。这样,可以省略、并行地、以所示出和/或描述的顺序、以其他顺序执行所示出和/或描述的各种操作。同样,可以改变上述处理的顺序。

虽然已经以结构特征和/或方法动作特定的语言描述了主题内容,但是应当理解,所附权利要求中所限定的主题内容不一定限于上述具体特征或者动作。相反,上面描述的具体特征和行为作为实现权利要求的示例形式而被呈现。

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