无限搜索结果页面的制作方法

文档序号:11450197阅读:249来源:国知局
无限搜索结果页面的制造方法与工艺

相关申请的交叉引用

本申请要求于2014年12月31日提交的美国专利申请no.14/588,222的优先权,其全部内容通过引用的方式并入本文。

本公开一般涉及数据分析,并且在特定示例实施例中,涉及提供动态内容递送。



背景技术:

通常,当用户执行搜索时,用户必须输入搜索字符串,然后选择“回车”键。一旦选择了“回车”键,搜索系统获取整个搜索字符串,并对与整个搜索字符串匹配的条目执行搜索。这样,在用户输入搜索字符串并选择“回车”键与获得搜索结果之间存在滞后时间。另外,为了访问以前的搜索结果,用户必须通过选择后退按钮来重新加载先前的搜索结果。

附图说明

附图中的各个附图仅示意说明了本发明的示例实施例,并且不能被认为是限制本发明的范围。

图1是示出用于提供动态内容递送搜索系统的系统的网络架构的示例实施例的框图。

图2是示出发布系统的示例实施例的框图。

图3是搜索引擎的示例实施例的框图。

图4a-4g是动态内容递送搜索系统的示例用户界面。

图5是用于在搜索系统中提供动态内容的示例方法的流程图。

图6是用于在搜索系统中细化动态内容的示例方法的流程图。

图7是用于提供无限搜索结果页面(srp)的示例方法的流程图。

图8是以计算系统作为示例形式的机器的简化框图,在所述机器中可以执行用于使得所述机器执行本文讨论的方法中的任何一个或多个方法的指令集。

具体实施方式

以下说明包括具体体现本发明的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在下文的描述中,出于解释的目的,阐述了很多具体细节以提供对发明主题的各种实施例的理解。然而,本领域技术人员将显而易见的是,本发明主题的实施例可以在没有这些具体细节的情况下实施。一般而言,对公知的指令实例、协议、结构和技术不进行详细说明。

本文描述的示例实施例提供了以有效和快速的方式向用户提供动态搜索内容的系统和方法。示例实施例允许用户向将搜索栏输入搜索字符串,包括一个或多个关键字。当用户正在输入(例如打字或说话)搜索字符串时,动态内容递送搜索系统已经在获取关键字并即时执行匹配处理以确定与关键字匹配的结果。这是在不需要用户选择例如“回车”键的情况下完成的。因此,一旦用户完成整个搜索字符串的输入,在不需要用户选择“回车”键的情况下,搜索结果就被排队以便呈现给用户,并且可以在搜索栏周围自动地“浮出水面”。相应地,因为在用户甚至尚未完成整个搜索字符串的输入之前就在执行匹配处理,并且潜在的结果被排队(例如,在存储器或高速缓存中)以便在完成搜索字符串的输入时立即进行递送,所以在呈现结果时没有滞后时间。

在示例实施例中,搜索的当前级别的搜索结果被呈现在客户端设备上显示的搜索结果页面上。检测向当前级别的搜索结果的呈现施加的滚动指示。基于滚动指示的方向,在搜索结果页面上在所指示的方向上滚动当前级别的搜索结果。做出关于响应于滚动已经到达当前级别的搜索结果的呈现的末尾的确定。作为响应,将先前级别的搜索结果附加到当前级别的搜索结果的呈现的末尾,以引起搜索结果页面的连续呈现。

因此,本文描述的一种或多种方法有利于执行搜索并呈现相应的搜索结果。先前的搜索结果被附加到当前搜索结果集的末尾,使得不需要用户回溯(例如,选择“返回”按钮或重新加载具有先前的搜索结果的页面)。当总体来考虑这些效果时,本文描述的一个或多个方法可以不再需要在提供针对搜索请求的内容时原本会涉及的某些工作量或资源。可以减少由(例如在网络环境100中的)一个或多个机器、数据库或设备使用的计算资源。这样的计算资源的示例包括处理器循环、网络流量、存储器使用状况、数据存储容量、功耗以及冷却能力。

参考图1,示出了用于提供动态内容递送搜索系统的基于基于客户端-服务器的高级网络架构100的示例实施例。在一个示例中,联网系统102形成网络服务器侧功能,并经由通信网络104(例如,互联网、无线网络、蜂窝网络或广域网(wan))与一个或多个客户端设备110、112耦合。例如,图1示出了经由浏览器(例如如由华盛顿州雷德蒙德市的公司开发的internet浏览器)操作的web客户端106和在各个客户端设备110、112上执行的可编程客户端108。

客户端设备110、112均可以包括移动电话、台式计算机、膝上型计算机或用户可以用于访问联网系统102的任意其他通信设备。在一些实施例中,每个客户端设备(例如,客户端设备110)可以包括显示模块(未示出)以(例如,以用户界面的形式)显示信息。在另一些实施例中,客户端设备可以包括触摸屏、加速度计、相机、麦克风和全球定位系统(gps)设备等中的一个或多个。客户端设备110、112可以是用户的设备,其被用于触发信息处理、执行搜索、以及从由联网系统102提供的动态内容递送搜索系统接收结果。在一个实施例中,联网系统102包括或链接到基于网络的市场,所述基于网络的市场管理数字商品,发布包括在该基于网络的市场上可获得的产品的产品列表在内的刊物,以及管理这些市场交易的付款。

应用程序接口(api)服务器114和web服务器116耦合至一个或多个应用服务器118,并分别向一个或多个应用服务器118提供编程和web接口。应用服务器118可以托管(host)一个或多个发布系统120,发布系统142可以包括一个或多个模块、应用或引擎,并且可以实现为硬件、软件、固件或它们的任意组合。应用服务器118进而与便于访问一个或多个信息存储资料库或数据库124的一个或多个数据库服务器122耦合。在一个实施例中,数据库124是存储可被动态内容递送搜索系统搜索的内容(例如,产品列表、商店信息、广告、视频)的存储设备。

在示例实施例中,发布系统120在网络(例如,互联网)上发布内容。这样,发布系统120向访问联网系统102的用户提供多个发布功能和服务。在示例实施例中,发布系统120是市场环境,通过该市场环境用户可以购买其上列出的产品。然而,要注意的是,在备选实施例中,发布系统120可以与例如信息(如,搜索引擎)或社交网络环境之类的非市场环境相关联。下面将结合图2来进行更详细地论述发布系统120。

虽然发布系统120在图1中被示为形成联网系统102的一部分,但是应当理解,在备选实施例中,发布系统120可以形成与联网系统102分离且不同的单独服务的一部分。此外,尽管图1的示例网络结构100采用客户端-服务器架构,本领域技术人员将意识到本公开不限于这种结构。示例网络结构100可以同样好地应用在例如分布式或点对点架构系统中。发布系统120还可以实现为在不一定具备联网能力的单独硬件平台下操作的单机系统或单机软件程序。例如,发布系统120连同数据库124可以整个在客户端设备(例如,客户端设备112)上,或者发布系统120可以在客户端设备上,并且可以访问单独的数据库124。

现在参照图2,在一个实施例中,示出了在联网系统102的发布系统120内提供的多个组件的示例框图。在该实施例中,发布系统120包括与基于网络的市场相关联的内容递送搜索系统,在所述基于网络的市场中可以提供用于出售的项目(例如,商品或服务)。这些项目可以包括数字商品(例如货币、许可权)以及实体商品。发布系统120可以在专用或共享服务器机器(未示出)上托管,这些专用或共享服务器机器通信耦合以实现服务器机器之间的通信。多个组件自身直接或间接彼此通信地耦合并与各种数据源通信地耦合(例如经由适当的接口),以允许信息在组件间传递或允许组件共享并访问公共数据。此外,组件可以经由一个或多个数据库服务器122访问一个或多个数据库124。

发布系统120可以提供众多发布、列表和价格设置机制,其中,卖家(例如,个人、商店、公司)可以列出出售的商品或服务(或发布与商品或服务有关的信息),买家可以表示购买这种商品或服务的兴趣或者意向,并且可以为关于商品或服务的交易设置价格。为此,发布应用120可以包括至少一个发布引擎202以及一个或多个拍卖引擎204,拍卖引擎704支持拍卖形式的列表和价格设置机制(例如英式拍卖、荷式拍卖、次高叫价拍卖、中式拍卖、复式拍卖、逆向拍卖等)。

商店引擎206允许卖家将列表组合在“虚拟”商店中,该“虚拟”商店可以被卖家冠以品牌或者被卖家个性化。这种虚拟商店还可以提供促销、激励以及对于卖家来说特定和个性化的特征。在一个示例中,卖家可以供应多个项目作为虚拟商店中的现在购买(buy-it-now)项目,提供多个项目用于销售或拍卖,或二者的组合。卖家还可以通过其商店提供其他内容。例如,卖方可以提供食谱或视频(例如,示出如何制作或使用项目)。

可以由导航引擎208促进发布系统120的导航。例如,导航引擎208的浏览器模块(未示出)允许用户106根据哪些内容可在发布系统120内分类来浏览各种搜索结果、类别、目录或库存数据结构。可以提供导航引擎208内的各种其他导航应用,以补充浏览应用。

为使可经由联网系统获得的内容尽可能可视化地进行通知且吸引人,发布系统120可以包括成像引擎210,成像引擎210使用户能够上载图像或视频以包括在发布中,并将图像或视频涵盖在查看的发布内。成像引擎210还可以从用户接收作为搜索查询的图像数据,并利用图像数据(例如,元数据)来识别图像数据所描绘或描述的项目。根据示例实施例,成像引擎210可以使用从第三方媒体托管站点获取的图像或其他数字内容。

内容创建引擎212允许用户(例如,卖方)方便地创建发布、内容或项目列表。在一个实施例中,内容与用户(例如,卖方)希望经由发布系统120交易的商品或服务有关。在其他实施例中,用户可以创建作为广告或其他形式的发布(例如,教学视频)的内容。

内容管理引擎214允许用户管理这些发布或内容。具体地,在特定用户已经创建或发布了大量内容的情况下,管理这些内容可能是一个挑战。内容管理应用214提供用于帮助用户管理这些内容的多个功能(例如自动重新列出、库存级别监测等)。

搜索引擎216执行在联网系统102中搜索与查询匹配的内容,将关键字附加到搜索字符串,对搜索结果进行排队,以及管理搜索结果的呈现。这些搜索在用户正在输入搜索字符串时即时执行。一旦用户已经完成了搜索字符串,不必用户选择“回车”按钮或键,就可以对结果排队以呈现给用户(例如,被高速缓存)。下面将结合图3来进行更详细地论述搜索引擎216。

尽管已经关于各种单个模块和引擎定义了发布系统120的各种组件,本领域技术人员将认识到,根据示例实施例,许多项目可以用其他方式组合或组织,并且并不是所有模块或引擎都需要存在或被实现。此外,图2中并没有包括发布系统120的全部组件。通常,没有具体示出或论述不与示例实施例的功能直接相关的组件、协议、结构和技术(例如,定价引擎、争议解决引擎、忠诚度促进引擎、个性化引擎)。本文给出的说明仅提供各种示例实施例,以辅助读者理解本文中使用的系统和方法。

图3示出了,在一个实施例中,具有在发布系统120的搜索引擎216内提供的多个组件的示例框图。搜索引擎216包括动态内容递送搜索系统,所述动态内容递送搜索系统在用户正在输入搜索字符串时执行对搜索字符串中的关键字的即时匹配,并且对搜索结果进行排队以便在完成搜索字符串的输入时立即呈现给用户。搜索引擎216还允许用户简单地通过选择与所显示的感兴趣的类别、子类别或项目相对应的图像来将关键字附加到搜索字符串。此外,搜索引擎216提供将先前级别的搜索结果附加到当前级别的搜索结果的底部或末尾的无限搜索结果页面(srp)。为了实现这些操作,搜索引擎216包括全部通信地耦合在一起的查询输入模块302、匹配模块304、结果模块306和用户界面模块308。

如计算机和互联网相关领域的技术人员所理解的,图2和图3所示的每个组件(例如,模块或引擎)可以表示一组逻辑(例如,可执行软件指令)和用于执行该组逻辑的相应硬件(例如,存储器和处理器)。此外,图2和图3中所示的每个组件(例如,模块或引擎)通信耦合到(经由合适的接口)其他组件和各种数据源,使得允许在组件之间传递信息或者允许组件共享和访问公共数据。此外,图2和图3所示的每个组件可以托管在专用的或共享的服务器机器上,所述服务器机器通信耦合在一起,以实现服务器机器之间的通信。

查询输入模块302管理涉及在搜索框内输入搜索字符串的操作,搜索框显示在呈现给用户的用户界面上。因此,查询输入模块302检测何时搜索字符串正被输入到搜索框中,并识别搜索字符串的一个或多个关键字。例如,一旦用户输入搜索字符串中的第一关键字,查询输入模块302就检测到关键字的输入(例如,检测到一系列字母之后的空格或检测到对空格键的选择),识别出关键字,并将关键字传递给匹配模块304。针对搜索字符串的每个另外的关键字继续该过程。查询输入模块302还管理涉及根据从先前呈现的搜索结果中做出的选择将关键字附加到搜索字符串的操作,将在下面对此进行更详细的讨论。

匹配模块304执行匹配处理以实时确定与搜索字符串中的一个或多个关键字的匹配。在示例实施例中,匹配模块304接收查询输入模块302检测到的第一关键字,并且执行第一匹配处理以导出与第一关键字匹配的结果。随后,如果查询输入模块302检测到搜索字符串中的第二关键字,则匹配模块304使用该第二关键字来细化从第一关键字导出的匹配结果。该匹配过程继续进行,直到来自搜索字符串的每个关键字都已涵盖到匹配过程中。可以例如通过任何另外的关键字的输入中的空格或暂停来检测搜索字符串的结束。

结果模块306管理涉及在将结果呈现给用户之前处理搜索结果的操作。在示例实施例中,结果模块306确定当前搜索或先前搜索或搜索结果的级别。基于当前搜索或先前搜索或搜索结果的级别,可以检索不同版本的内容以呈现给用户。例如,如果先前的搜索结果的级别是处于类别级别(例如,家具),则从先前的搜索结果构建(例如,细化先前的搜索结果或搜索字符串)的当前搜索结果可以是处于子类别级别(如沙发)。在其他实施例中,当前搜索或先前搜索的级别被提供给查询输入模块302,以便查询输入模块302确定要附加到先前的搜索字符串的一个或多个关键字,将在下面对此进行更详细的讨论。

用户界面模块308管理用于使得(例如,在用户的客户端设备的显示器上)向用户呈现搜索结果的操作。在示例实施例中,用户界面模块308使得搜索结果以图形格式呈现在搜索栏或框的一侧或多侧上。相应地,用户接口模块308访问搜索结果的图像,并且向用户的客户端设备(例如,客户端设备110)发送指令和数据以呈现这样的用户界面。用户界面模块308还管理将先前的搜索结果附加到当前搜索结果集的末尾,使得不需要用户回溯(例如,选择“返回”按钮或重新加载具有先前的搜索结果的页面)。

图4a-图4g是动态内容递送搜索系统(例如,经由用户界面模块308)呈现的示例用户界面。图4a示出了包括主页的用户界面400,在该主页处,用户开始搜索查询。如图所示,用户界面400包括搜索栏402,用户可以在搜索栏402中输入搜索字符串的。

用户接口400还提供被示出为图像的多个内容,用户可以从中选择要附加到当前搜索字符串的内容。在用户为发布系统120已知(例如,经由利用发布系统120记录的cookie)的情况下,所述多个内容可以针对用户进行个性化定制。例如,在主页上显示的内容可以包括用户先前购买过的、先前已经执行过搜索的、拥有的、已经表现出兴趣的项目的类别,或其任意组合。

现在参考图4b,用户已经输入“summercocktail(夏季鸡尾酒)”作为搜索字符串。作为响应,当用户键入“summercocktail”时,对应于与“summercocktail”相关的类别的各种图像在搜索栏402周围“浮出水面”或显示。在一些实施例中,在输入搜索字符串的每个关键字时可以显示各种结果。例如,在用户键入“summer(夏天)”之后,可以在搜索栏402周围显示一组图像。当用户继续输入搜索字符串的剩余部分(例如,键入“cocktail(鸡尾酒)”)时,在搜索栏402周围显示的图像被细化以显示对应于“summercocktail”的类别。在其他实施例中,直到用户已经完成了搜索字符串的输入,才会显示图像。然而,在用户正在输入关键字时,搜索引擎216基于用户正在搜索栏402中输入的内容来动态地组织(curate)和创建搜索结果,由此在后端(例如,发布系统120)对搜索结果进行排队。随着在搜索栏402中附加更多的关键字,排队的搜索结果被细化。结果,与直到在用户选择“回车”键之后才发生对搜索字符串的处理的实施例相比,可以更快地返回搜索结果。

如图4b的示例用户界面中所示,搜索结果的各种类别例如包括眼镜、玻璃饮料杯、女装、男装、酒具和家具。用户可以选择与这些类别之一相对应的图像来细化搜索。例如,用户可以选择与玻璃饮料杯相对应的图像404。通过选择该图像,与所选图像相关联的一个或多个关键字被附加到搜索字符串。例如,查询输入模块302根据与所选择的图像相关联的元数据(例如,描述图像中的项目的属性)确定一个或多个关键字。该一个或多个关键字由用户界面模块308附加到搜索字符串,并被匹配模块304使用以细化当前搜索结果。现在参考图4c,搜索栏402现在示出关键字对“glasses(玻璃杯)”的添加,得到新的搜索字符串“summercocktailglasses(夏天鸡尾酒玻璃杯)”。因此,可以使用对视觉表示或图像的选择来细化搜索。

附加到搜索字符串的该一个或多个关键字取决于当前搜索的级别。在一个实施例中,所显示的图像中的每一个被标记(例如,利用附加的元数据来标记),以指示该搜索中的当前级别。例如,“summercocktail(夏季鸡尾酒)”的返回结果代表类别(视觉类别表示)。因此,搜索引擎216将检测到与“玻璃饮料杯”相对应的图像具有标签“类别”。因此,从类别级别中选择“玻璃饮料杯”将向搜索引擎216指示:附加与类别级别对应的关键字,以及返回与玻璃饮料杯对应的子类别(例如,商品、商店)中的结果。另外,如果当前级别是玻璃饮料杯的子类别,则对显示玻璃饮料杯的图像的选择会使得与子类别等级对应的关键字被附加,并且以项目级别返回结果(例如,可供购买的各个项目)。

如在图4c中所示,现在在搜索栏402周围显示与搜索字符串“summercocktailglasses(夏季鸡尾酒玻璃杯)”对应的图像。所述图像可能对应于与夏季鸡尾酒玻璃杯相关的子类别。例如,图4c中示出了与玻璃饮料杯的类型对应的图像、与玻璃饮料杯相关的附件、以及与鸡尾酒相关的成分。

另外,在图4c中显示了对应于与玻璃饮料杯相关的视频408的图像406。如果用户选择图像406,则视频408开始播放,如图4d所示。在图4d的示例用户界面中,视频408与销售玻璃饮料杯的商店(例如布鲁克林玻璃与商品公司(brooklynglass&mercantilecompany))相关联,并且可以例如显示如何制作鸡尾酒。此外,搜索栏402可以被重新定位(例如,移动到用户界面的顶部),以便显示视频408。

对图像406(或现在播放的视频408)的另一选择例如导致显示视频408的全屏410,如图4e所示。搜索栏402保持在被重新定位的位置处(例如,移动到用户界面的顶部),以便显示全屏410。备选地,对图4c中的图像406的选择可以使得视频408在全屏410中播放,如图4e所示。

另外,在搜索栏402中附加与所选的图像406链接的一个或多个关键字。在本例中,“frombrooklynglass&mercantileco.(来自布鲁克林玻璃与商品公司)”被附加到“summercocktailglasses(夏季鸡尾酒玻璃杯)”。附加与布鲁克林玻璃与商品公司相关联的关键字使得搜索引擎216进一步细化先前的搜索结果,即使用户尚未请求进一步细化(例如,用户仅指示播放视频)。因此,进一步细化的搜索结果可以被排队,并且准备好在用户指示对与布鲁克林玻璃与商品公司相关联的更精确的搜索结果的期望之前进行呈现。

基于对视频408(或对应于视频408的图像)的进一步选择,呈现进一步细化的搜索结果(例如,与布鲁克林玻璃与商品公司的夏季鸡尾酒玻璃杯相关的项目),如图4f所示。在一个实施例中,在可滚动的用户界面中呈现进一步细化的搜索中显示的项目。在其他实施例中,可以通过其他格式(例如网格形式、列表形式)显示项目。显示的项目可以包括例如销售的产品以及食谱。

用户可以滚动该进一步细化的搜索结果。例如,如果显示器是在触摸屏设备(例如,平板计算机)上,则用户可以通过向上滑动来向上滚动该进一步细化的搜索结果。在该进一步细化的搜索结果的末尾,来自上一级的先前的搜索结果继续示出。因此,随着用户继续向上滚动,细化的布鲁克林玻璃与商品公司的结果将被推出用户界面,并且基于搜索字符串“summercocktailglasses(夏季鸡尾酒玻璃杯)”的搜索结果被作为不断滚动的用户界面的一部分来呈现,如图4g所示。此外,搜索栏402示出了当前搜索字符串。因此,搜索字符串已更改为指示“summercocktailglasses(夏季鸡尾酒玻璃杯)”。如果用户从该点开始向下滚动搜索结果,则将重新显示针对“summercocktailglassesfrombrooklynglass&mercantileco(布鲁克林玻璃与商品公司的夏季鸡尾酒玻璃杯)”的细化搜索结果,并且搜索栏402相应地改变。结果,由搜索引擎216提供了无限搜索结果页面(srp)。因此,搜索引擎216知道您来自哪里(例如,搜索结果的先前级别),并将其附加到当前级别的搜索结果的底部。这避免了使用后退按钮,也不需要响应于对后退按钮的选择而重新加载包含先前的搜索结果的页面。将在下面详细讨论无限srp处理。

图5是用于在搜索系统中提供动态搜索内容的示例方法500的流程图。在示例实施例中,搜索引擎216当正在搜索框或栏中输入搜索字符串时动态地执行匹配,并且对搜索结果进行排队以便呈现。用户不需要为了获得结而选择“回车”键。因此,在操作502中检测搜索字符串的输入。查询输入模块302基本上实时地(例如,检测击键、字符或数字)检测正被输入到搜索栏中的搜索字符串的输入。

在操作504中,识别搜索字符串的关键字。在示例实施例中,查询输入模块302当每个关键字正被输入到搜索栏中时对其识别。例如,一旦用户输入了搜索字符串的第一关键字,则查询输入模块302检测并识别该第一关键字(例如“summer(夏季)”)。在一个实施例中,查询输入模块302基于关键字之后的空格来检测第一关键字的输入的完成。

然后该关键字被传递给匹配模块304,在操作506中,在匹配模块304中实时确定与关键字的匹配。在示例实施例中,匹配模块304接收查询输入模块302检测到的关键字,并执行匹配处理以导出与该关键字匹配的结果。作为结果,与该关键字匹配的匹配结果被确定,并且准备好呈现给用户(例如排队以递送)。

在操作508中,确定搜索字符串中是否存在下一关键字。例如,查询输入模块302确定是否为搜索字符串输入了下一或后续的关键字。如果检测到下一关键字,则该方法返回到操作504,由此在操作506中识别和使用该下一关键字(例如,“cocktail(鸡尾酒)”),以细化先前的基于第一关键字的匹配结果。

该匹配过程继续进行,直到来自搜索字符串的每个关键字都已涵盖到匹配过程中。每个关键字的添加细化了先前的匹配结果。如此,匹配过程变得明显更快,并且因为下一关键字与先前匹配结果的较小集合进行匹配,所以每次迭代需要较少的处理能力。

一旦检测到没有其他关键字(例如,搜索字符串的输入完成),则在操作510中访问搜索结果的最终匹配的图像。因此,用户接口模块308从存储发布信息的数据库或存储库(例如,数据库124)访问图像。图像可以包括来自第三方或存储库的图像、来自目录的图像、由各种实体通过成像引擎210上载的图像、或这些图像的任何组合。

在操作512中,使得搜索结果显示在用户的客户端设备(例如,客户端设备110)上。在示例实施例中,用户界面模块308向用户的客户端设备发送指令和数据(例如,图像数据)以呈现用户界面,由此显示搜索结果的图像(例如,在搜索栏上方、下方或周围)。应当注意,尽管提供搜索结果的视觉表示的图像被论述为作为搜索结果进行显示,但是备选实施例可以呈现其他形式的搜索结果。例如,搜索结果可以以列表格式(具有或不具有关联图像)进行提供。

现在参考图6,示出了用于细化动态内容的示例方法的流程图。在示例实施例中,搜索引擎216可以基于用户对当前搜索结果的选择来将另外的关键字附加到搜索字符串。例如当用户不知道特定项目叫什么、如何描述特定项目、或与特定项目相关联的商店或组织的名称时,这可能是有利的。相反,用户可以使用描绘用户感兴趣的项目的图像来细化更一般化的搜索。在一些实施例中,可以基于用户已经输入搜索字符串并且已经接收到基于输入的搜索字符串的搜索结果来执行方法600。搜索结果以图像的形式来显示,该图像呈现特定搜索结果的视觉表示。备选地,可以基于用户在显示各种类别的图像的主页上(例如,如图4a所示)来执行方法600。

在操作602中,接收到对图像之一的选择。在示例实施例中,输入查询模块302接收到对图像的选择,并访问与所选图像相关联的元数据。

在操作604中,确定当前搜索和所选图像的级别。例如,可以进行所选图像是否是宽类别图像或者所选图像是否是特定项目图像的确定。要附加到搜索字符串的一个或多个关键字或者要返回的搜索结果取决于当前搜索的级别。在一个实施例中,当使得将所选图像显示给用户时,该所选图像被标记以指示搜索中的当前级别(例如,类别级别、子类别级别)。在该实施例中,根据标签确定搜索的级别。

在操作606中,一个或多个关键字被确定并附加到搜索字符串。可以根据当前搜索级别,从与所选图像关联的元数据中确定一个或多个关键字。例如,如果当前搜索级别呈现针对“summercocktail(夏季鸡尾酒)”的(类别)结果,并且用户选择了与potterybarn鸡尾酒玻璃杯相对应的图像,要附加的关键字是“玻璃杯”。然而,如果当前搜索级别呈现针对“summercocktailglasses(夏季鸡尾酒玻璃杯)”的(子类别)结果,并且选择了与potterybarn鸡尾酒玻璃杯相对应的同一图像,则要附加的关键字可以是“potterybarn”,从而得到搜索字符串“summercocktailglassesfrompotterybarn(potterybarn的夏季鸡尾酒玻璃杯)”。在另一例子中,如果当前搜索级别基于搜索字符串“summercocktailglassesfrompotterybarn(potterybarn的夏季鸡尾酒玻璃杯)”呈现potterybarn的店面,并且用户选择同一图像,则可以附加来自potterybarn的图像中描述的玻璃杯的类型(例如“classicmargar北a(经典玛格丽塔)”)。在示例实施例中,用户界面模块308使得一个或多个关键字被添加到搜索栏中显示的搜索字符串。输入查询模块302还将该一个或多个关键字提供给匹配模块304。

在操作608中,匹配模块304确定针对附加后的搜索字符串的匹配。因此,通过附加的关键字细化了先前的搜索结果,以获得比先前的搜索更低的搜索级别的细化搜索结果。使用附加的关键字对先前的搜索结果进行细化是在用户除选择图像之外没有进行任何其他动作(例如,不需要“回车”键)的情况下执行的。

在操作610中,访问搜索结果的最终匹配的图像。因此,用户接口模块308从存储发布信息的数据库或存储库(例如,数据库124)访问图像。图像可以包括来自第三方或存储库的图像、来自目录的图像、由各种实体通过成像引擎210上载的图像、或这些图像的任何组合。

在操作612中,使得在用户的用户设备上显示搜索结果。在示例实施例中,用户界面模块308向用户的客户端设备发送指令和数据(例如,图像数据)以呈现用户界面,由此显示搜索结果的图像(例如,在搜索栏上方、下方或周围)。

图7是用于提供无限搜索结果页面(srp)的示例方法700的流程图。在示例实施例中,搜索引擎216通过将先前级别的搜索结果附加到当前级别的搜索结果的底部或末尾来提供无限搜索结果页面(srp)。该过程避免了使用后退按钮,也不需要响应于对后退按钮的选择而重新加载包含先前的搜索结果的页面。方法700的操作由用户界面模块308执行。

在操作702中,使得在用户设备上呈现当前级别的搜索结果(例如,针对“summercocktailglassesfromthebrooklynglass&mercantileco.(布鲁克林玻璃与商品公司的夏季鸡尾酒玻璃杯)”的搜索结果)。在示例实施例中,用户界面模块308通过向用户的客户端设备发送指令和数据来使得以图形格式呈现搜索结果,以呈现这种可滚动的用户界面。对于每个结果,搜索结果可以包括文本、图像或两者的组合。方法700假定:已经执行了至少一个初始搜索和对初始搜索的细化,并且使得要呈现的当前级别的搜索结果是基于该细化的搜索结果。

在操作704中,检测滚动指示。例如,用户可以在显示当前级别的搜索结果的触摸屏上向上滑动。作为响应,在操作706中,用户界面模块308使得搜索结果在滚动指示的方向上滚动。

在操作708中,确定是否到达当前级别的搜索结果(例如,针对“summercocktailglassesfromthebrooklynglass&mercantileco.(布鲁克林玻璃与商品公司的夏季鸡尾酒玻璃杯)”的搜索结果)的末尾。如果未到达当前级别的搜索结果的末尾,则用户界面继续监视滚动指示,并且使得滚动搜索结果呈现在滚动指示的方向上。

然而,如果到达当前级别的搜索结果的末尾,则用户界面模块308将先前级别的搜索结果(例如,针对“summercocktailglasses(夏季鸡尾酒玻璃杯)”的搜索结果)附加到当前级别的搜索结果的底部或末尾。因此,搜索引擎216了解当前级别的搜索结果中的所有项目之间关于整个总搜索结果的关系。如果当前级别(例如,运动-运动类别-棒球)的搜索结果到达末尾,则用户界面模块308将搜索结果返回到先前级别(例如,运动-运动类别)。

先前的搜索结果的附加不需要提供新页面来呈现先前的搜索结果。相反,先前的搜索结果是从高速缓存中检索的,并被添加到当前搜索结果的末尾,因此利用了高速缓存的体验并降低了处理要求。

图8是示出了根据一些示例实施例的能够从机器可读介质822(例如非临时机器可读机制、机器可读存储介质、计算机可读存储介质或其任意适当组合)读取指令824并完全或部分执行此处讨论的方法中的任意一个或多个的机器800的组件。具体地,图8示出了计算机系统(例如计算机)的示例形式的机器800,其中,可以完全或部分执行用于使机器800执行此处讨论的方法中的任意一个或多个的指令824(例如软件、程序、应用、小程序、app或其他可执行代码)。

在备选实施例中,机器800作为独立设备操作或者可以连接至(例如联网)到其他机器。在联网部署中,机器800可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器800可以是服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、智能电话、web设备、网络路由器、网络交换机、网桥或者能够顺序地或以其他方式执行指定了要由该机器采取的动作的指令824的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应视为包括独立地或联合地执行指令824以执行本文讨论的方法中的任意一个或多个方法的机器的集合。

机器800包括被配置为彼此经由总线808通信的处理器802(例如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、或其任意适当组合)、主存储器804和静态存储器806。处理器802可以包含微电路,可由指令824中的一些或全部临时或永久配置,使得处理器802可被配置为完全或部分执行本文描述的一个或多个方法中的任意一个或多个。例如,处理器802的一个或多个微电路的集合可被配置为执行本文描述的一个或多个模块(例如软件模块)。

机器800还可以包括图形显示器810(例如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪、阴极射线管(crt)或能够显示图形或视频的任何其他显示器)。机器800还可以包括字母数字输入设备812(例如键盘或键区)、光标控制设备814(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器、眼动跟踪设备或其他定位仪器)、存储单元816、信号产生设备818(例如声卡、放大器、扬声器、耳机插座或其任意适当组合)以及网络接口设备820。

存储单元816包括其中存储有指令824的机器可读介质822(例如有形且非瞬态机器可读存储介质),所述指令824实现本文描述的方法或功能中的任意一个或多个。指令824还可以在机器800执行之前或期间完全或至少部分驻留在主存储器804内、处理器802内(例如处理器的高速缓存内)或两者内。因此,主存储器804和处理器802可以视为机器可读介质(例如有形和非瞬态机器可读介质)。

在一些示例实施例中,机器800可以是便携式计算设备(例如智能电话或平板计算机),并且具有一个或多个附加输入组件(例如传感器或仪表)。这样的输入组件的示例包括图像输入组件(例如一个或多个摄像机)、音频输入组件(例如麦克风)、方向输入组件(例如罗盘)、位置输入组件(例如全球定位系统(gps)接收器)、取向组件(例如陀螺仪)、运动检测组件(例如一个或多个加速度计)、高度检测组件(例如高度计)、以及气体检测组件(例如气体传感器)。这些输入组件中的任意一个或多个获得的输入可访问和可用于被此处描述的任一模块使用。

如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质,并且可看作包括但不限随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存以及高速缓存存储器。尽管机器可读介质822在示例实施例中被示为单个介质,但是术语“机器可读介质”应看作包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应看作包括任何能够存储指令的介质或多个介质的组合,所述指令供机器(例如,机器800)执行,使得当指令被机器的一个或多个处理器(例如处理器802)执行时使机器执行此处描述的方法中的任意一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读机制”应看作包括但不限于采取固态存储器、光学介质、磁介质或其任意适当组合的形式的一个或多个数据仓库。

此外,有形机器可读介质是非瞬时的,体现在其不实现传播信号。然而,标记的有形的机器可读介质作为“非临时性的”不应被解释为意味着介质不能移动-介质应被视为可以从一个物理位置移动到另一个。此外,由于机器可读介质是有形的,所以所述介质可被认为是机器可读设备。

指令824还可以使用传输介质在通信网络826上经由网络接口设备820并利用多个已知传输协议中的任意一个(例如http)来发送或接收。通信网络的示例包括局域网(lan)、广域网(wan)、互联网、移动电话网络、简易老式电话(pots)网络以及无线数据网络(例如wifi和wimax网络)。术语“传输介质”应当被视为包括能够存储、编码或承载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质,以促进这种软件的通信。

在该说明书中,复数实例可以实现被描述为单数实例的组件、操作或结构。虽然一个或多个方法的各个操作被示意和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本主题的范围内。

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

在一些实施例中,硬件模块可以按照机械方式、电子方式或其任意适当组合来实现。例如,硬件模块可以包括永久地被配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,如现场可编程门阵列(fpga)或asic。硬件模块还可以包括由软件临时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括通用处理器或其他可编程处理器中包含的软件。应理解:以机械方式、以专用和永久配置的电路或以临时配置的电路(例如由软件配置)实现硬件模块的决定可出于成本和时间的考虑。

因此,短语“硬件模块”应理解为涵盖有形实体,是在物理上构造、永久配置(例如硬线连接)或临时配置(例如编程)为以特定方式操作或执行本文描述的特定操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑临时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,如果硬件模块包括被软件配置成为专用处理器的通用处理器,则通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件可以将处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。

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

此处描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论临时还是永久配置,这样的处理器可以构成操作为执行本文描述的一个或多个操作或功能的处理器实现的模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。

类似地,本文描述的方法可以至少部分是处理器实现的,处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(saas)执行有关操作。例如,操作中的至少一些可由计算机(作为包括处理器的机器的示例)组执行,这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(api))来访问。

某些操作的执行可以分布在一个或多个处理器中,并不只驻留在单个机器中,而是布置在多个机器中。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置(例如在家庭环境、办公室环境或服务器群中)。在其他示例实施例中,一个或多个处理器或处理器实现的模块可以分布在多个地理位置。

本文讨论的主题的一些部分可以用算法或对数据的操作的符号表示来呈现,所述数据存储为机器存储器(例如计算机存储器)内的比特或二进制数字信号。这样的算法或符号表示是数据处理技术领域普通技术人员用来向本领域其他技术人员传达他们工作实质的技术的示例。如本文所使用的,“算法”是操作的自洽序列或导致期望结果的类似处理。在该上下文中,算法和操作涉及对物理量的物理操作。通常但非必要地,这样的量可以采取能够由机器存储、访问、传输、组合、比较或以其他方式操纵的电气、磁或光学信号的形式。有时,主要由于常见用法的原因,使用诸如“数据”、“内容”、“比特”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数字”等词语来指代这样的信号是方便的。然而,这些词语仅仅是方便的标记,并且应与适当的物理量相关联。

除非另行具体说明,本文使用例如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词语的讨论可以指操纵或变换被表示为一个或多个存储器(例如易失性存储器、非易失性存储器或其任意组合)、寄存器或接收、存储、发送或显示信息的其他机器组件内的物理(例如电子、磁或光学)量的数据的机器(例如计算机)的动作或过程。此外,除非另行具体说明,如专利文献中常见的,本文中的术语“一”或“一个”用于包括一个或多于一个实例。最后,如本文所使用的,除非特别说明,连词“或”指非排他的“或”。

下面的编号示例是实施例。

1.一种承载指令的机器可读介质,所述指令当由机器的至少一个处理器执行时使得所述机器执行包括以下各项的操作:

使得在客户端设备上显示的搜索结果页面上呈现搜索的当前级别的搜索结果;

检测向所述当前级别的搜索结果的呈现施加的滚动指示;

使得基于所述滚动指示的方向,滚动所述当前级别的搜索结果的呈现;

确定响应于所述滚动已经到达所述当前级别的搜索结果的呈现的末尾;以及

将先前级别的搜索结果附加到所述当前级别的搜索结果的呈现的末尾,以引起搜索结果页面的连续呈现。

2.根据示例1所述的机器可读介质,其中,附加所述先前级别的搜索结果是在没有用户交互的情况下发生的。

3.根据示例1或示例2所述的机器可读介质,其中,附加所述先前级别的搜索结果包括访问存储所述先前级别的搜索结果的高速缓存。

4.根据示例1到3中任一项所述的机器可读介质,其中,附加所述先前级别的搜索结果是在不需要重新加载搜索结果页面的情况下发生的。

5.根据示例1到4中任一项所述的机器可读介质,其中,所述操作还包括:响应于附加所述先前级别的搜索结果,更新搜索栏中的搜索项以对应于所述先前级别的搜索结果。

6.根据示例1到5中任一项所述的机器可读介质,其中,所述操作还包括:

在引起所述先前级别的附加搜索结果的呈现的同时,接收在与所述滚动指示的方向相反的方向上的另一滚动指示;以及

基于相反方向上的所述另一滚动指示,引起所述当前级别的搜索结果的重新显示。

7.根据示例6所述的机器可读介质,其中,所述操作还包括:更新搜索栏中的搜索项,以对应于所述当前级别的搜索结果。

8.一种计算机实现的方法,包括:

使得在客户端设备上显示的搜索结果页面上呈现搜索的当前级别的搜索结果;

检测向所述当前级别的搜索结果的呈现施加的滚动指示;

使得基于所述滚动指示的方向,滚动所述当前级别的搜索结果的呈现;

确定响应于所述滚动已经到达所述当前级别的搜索结果的呈现的末尾;以及

通过硬件处理器将先前级别的搜索结果附加到所述当前级别的搜索结果的呈现的末尾,以引起搜索结果页面的连续呈现。

9.根据示例8所述的方法,其中,附加所述先前级别的搜索结果是在没有用户交互的情况下发生的。

10.根据示例8或示例9所述的方法,其中,其中,附加所述先前级别的搜索结果包括访问存储所述先前级别的搜索结果的高速缓存。

11.根据示例8到10中任一项所述的方法,其中,其中,附加所述先前级别的搜索结果是在不需要重新加载搜索结果页面的情况下发生的。

12.根据示例8到11中任一项所述的方法,还包括:响应于附加所述先前级别的搜索结果,更新搜索栏中的搜索项以对应于所述先前级别的搜索结果。

13.根据示例8到12中任一项所述的方法,还包括:

在引起所述先前级别的附加搜索结果的呈现的同时,接收在与所述滚动指示的方向相反的方向上的另一滚动指示;以及

基于相反方向上的所述另一滚动指示,引起所述当前级别的搜索结果的重新显示。

14.根据示例13所述的方法,还包括:更新搜索栏中的搜索项,以对应于所述当前级别的搜索结果。

15.一种系统,包括:

用户界面模块,包括一个或多个硬件处理器,并且配置为:

使得在客户端设备上显示的搜索结果页面上呈现搜索的当前级别的搜索结果;

检测向所述当前级别的搜索结果的呈现施加的滚动指示;

使得基于所述滚动指示的方向,滚动所述当前级别的搜索结果的呈现;

确定响应于所述滚动已经到达所述当前级别的搜索结果的呈现的末尾;以及

将先前级别的搜索结果附加到所述当前级别的搜索结果的呈现的末尾,以引起搜索结果页面的连续呈现。

16.根据示例15所述的系统,其中,所述用户界面模块在没有用户交互的情况下附加所述先前级别的搜索结果。

17.根据示例15或示例16所述的系统,其中,所述用户界面模块通过访问存储所述先前级别的搜索结果的高速缓存来附加所述先前级别的搜索结果。

18.根据示例15到17中任一项所述的系统,其中,所述用户界面模块在不需要重新加载搜索结果页面的情况附加所述先前级别的搜索结果。

19.根据示例15到18中任一项所述的系统,其中,所述用户界面模块还配置为:响应于附加所述先前级别的搜索结果,更新搜索栏中的搜索项以对应于所述先前级别的搜索结果。

20.根据示例15至19中任一项所述的系统,其中,所述用户界面模块还配置为:

在引起所述先前级别的附加搜索结果的呈现的同时,接收在与所述滚动指示的方向相反的方向上的另一滚动指示;以及

基于相反方向上的所述另一滚动指示,引起所述当前级别的搜索结果的重新显示。

尽管已经参照特定示例实施例描述了本发明主题的概述,但是在不偏离本发明实施例的更宽的范围的情况下可以对这些实施例做出各种修改和改变。本文中,本发明主题的这些实施例单独地或统一地由术语“发明”来指代,其仅是为了方便,并且不是旨在主动将本申请的范围限制为任意单个发明或发明构思(如果实际上不止一个被公开的话)。

本文充分详细地描述了示出的实施例以使得本领域技术人员能够实现公开的教导。可以利用并根据这些实施例得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。

如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任何的,并且在具体说明性配置的上下文中示出了特定操作。对功能的其他分配是可以预想到的,并且可以落入本发明各种实施例的范围内。一般来说,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些及其他的变型、修改、添加和改进落入如由所附权利要求表示的本发明的实施例的范围内。因此,说明书和附图应当被看做说明性的而不是限制意义的。

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