首页 / 电子数据集搜索

电子数据集搜索有效专利 发明

技术领域

[0001] 本发明一般而言涉及电子数据集,更具体而言,涉及用于从电子数据集搜索和提供结果的系统、方法和计算机程序产品。

相关背景技术

[0002] 在从用户接收到搜索请求后,常规的搜索引擎通常检查电子数据集,以确定数据集中与搜索请求匹配的项。然后,搜索引擎在用户的电子设备上以列表的形式向用户显示所确定的项。但是,因为搜索的数据集常常相当大,并且为此常常包括与用户的搜索请求匹配的若干项,所以在用户设备上显示的项的列表往往也相当大。因此,发送到用户的设备并由用户的设备存储以显示列表的数据量大,尽管列表中的若干项对用户来说可能不感兴趣。此外,对用户来说感兴趣的一些项可以位于列表中用户不感兴趣的若干项之后,在这种情况下,用户常常已被打击并且在到达令人感兴趣的项之前停止遍历列表。而且,依赖于用户设备上的可用屏幕空间,所显示的列表可能会使屏幕空间超载,或者可能以非常小的字体尺寸呈现以适应屏幕空间,在任何情况下都使遍历列表相当困难。这些问题在移动设备中尤为普遍,移动设备通常包括较小的屏幕尺寸。
[0003] 因而,需要改进的系统、方法和计算机程序产品,用于搜索电子数据集并以易于阅读的格式向用户提供日益相关的搜索结果。

具体实施方式

[0030] 本文描述的是用于搜索电子数据集以确定搜索查询的结果并向用户提供这种结果的创新系统、方法和计算机程序产品。但是,不是向用户显示结果的大列表的常规做法,这种做法会使用户不知所措从而导致一些相关结果被忽略,本文描述的实施例一次向用户显示一个结果。对于每个显示的结果,用户可以指示他或她对该结果是否感兴趣。如果用户指示他或她对给定结果不感兴趣,那么用户还可以提供结果不令人满意的理由。然后可以基于用户提供的理由来调整显示给用户的下一个结果。以这种方式,每个显示的结果可以基于为一个或多个先前显示的结果接收到的用户输入来动态地确定,这使得实施例能够在搜索大电子数据集时提供越来越集中的用户体验和增加的相关性,同时还实现了计算机资源节约以及减少了要通过网络发送到用户设备的数据量。这些实施例在涉及具有较小显示器的设备(诸如移动电话和平板电脑,由于其性质,这些设备常常不太适于遍历结果的大列表)的情况下会特别有益。
[0031] 现在转向附图,图1图示了可以包括客户端设备12、查询处理系统14和一个或多个数据提供者系统16的操作环境10。这些系统中的每一个可以被通信地启用,以经由网络24(诸如互联网)彼此交互。而且,其中两个或更多个系统可以彼此组合。例如,查询处理系统14可以在一个或多个数据提供者系统16上被托管。
[0032] 客户端设备12可以是使用户能够经由互联网访问远程信息和服务的电子设备。特别地,客户端设备12可以包括允许用户访问查询处理系统14和数据提供者系统16的浏览器和/或一个或多个应用。客户端设备12的非限制性示例包括台式计算机、膝上型计算机或者可能包括限制用户为了搜索查询容易地遍历结果大列表的能力的较小显示器的移动电子设备(诸如移动电话或平板电脑)。
[0033] 查询处理系统14可以被配置为使用户诸如经由客户端设备12能够提交对大电子数据集的搜索查询,该大电子数据集可以在一个或多个数据提供者系统16上被托管。特别地,用户可以利用客户端设备12访问可以存储在查询处理系统14和/或客户端设备12上的图形用户界面(GUI),并由此定义并提交搜索查询。搜索查询可以包括由用户经由GUI定义的多个搜索标准。响应于接收到搜索查询,查询处理系统14可以向数据提供者系统16提交对与搜索查询的搜索条件相关的数据的搜索请求。其后,查询处理系统14可以基于从数据提供者系统16接收的数据来生成搜索查询的多个结果。
[0034] 假定与接收到的搜索查询相关的数据集可能相当大,查询处理系统14生成的结果的数量同样可能很大。例如,当搜索查询是对多个旅行推荐的请求时,查询处理系统14可以生成多至大约八百个结果。当然,用户不可能对于由查询处理系统14生成的所有八百个结果都感兴趣,并且用户可能不想经由客户端设备12遍历所有八百个结果。当客户端设备12的显示具有有限的屏幕尺寸使得显示所有八百个结果将产生繁琐的图形用户界面和/或使得遍历所有八百个结果将是困难且压倒性的任务时,尤其是这样,如上所述,这会导致若干令人感兴趣的结果被忽视。
[0035] 为此,经由客户端设备向用户显示结果大列表的一种常规方法是根据预定标准(诸如价格)对结果进行分类,然后显示经分类的结果。但是,这种方法仍然产生对于用户遍历笨重数量的结果,并且具有较高价格的一些令人感兴趣的结果可能继续被用户忽略。此外,常规方法缺乏基于用户相对于其中一个结果的输入(例如,指示结果出于给定原因而对于用户来说不感兴趣的输入)对结果进行动态重新分类的任何机制,这意味着在碰到用户感兴趣的结果之前可能必须遍历一长串不相关且不令人感兴趣的结果。
[0036] 为了优化客户端设备12的显示器的使用,并且提高搜索相关性和效率,查询处理系统14可以被配置为一次向客户端设备12发送一个确定的结果以供显示。更特别地,查询处理系统14可以向客户端设备12发送特定结果,客户端设备12然后可以向用户显示结果并使用户能够提供关于所显示的结果对于用户来说是否感兴趣的输入。只有在用户提供这种输入之后,查询处理系统14才将另一个结果发送到客户端设备12供显示。以这种方式,用户不会由于必须遍历笨重的结果列表而不知所措,并且客户端设备12的屏幕同样不会由于同时显示大量的结果而过度拥挤。此外,因为一次仅将一个结果发送到客户端设备12并显示,所以客户端设备12能够实现资源节约。特别地,不是接收、存储和处理指示对搜索查询的整个结果列表的数据,而是客户端设备12仅需要存储和处理用于每个显示的结果的数据。因此,即使若干结果最终被发送到客户端设备12并显示在客户端设备12上,由客户端设备12存储和处理的总体数据的量也仍然小于如果由查询处理系统14确定的整个结果集被发送到客户端设备12并由客户端设备12显示的话将被处理和存储的量。
[0037] 而且,查询处理系统14可以利用针对所显示的结果接收的用户输入,如上所述,该用户输入可以指示用户是否对所显示的结果感兴趣,以确定要发送到客户端设备12供显示的下一个结果。特别地,用户输入可以指示用户对给定结果不感兴趣的理由,并且查询处理系统14可以基于所指示的理由动态地选择要发送到客户端设备12供显示的下一个结果。以这种方式,提供给客户端设备12供显示的结果随着用户继续经由客户端设备12提供输入而变得越来越与用户相关。
[0038] 数据提供者系统16可以包括被用来响应于经由客户端设备12提交的搜索查询的数据的一个或多个提供者的系统。特别地,响应于从客户端设备12接收到搜索查询,查询处理系统14可以与数据提供者系统16通信,以确定搜索查询的多个结果。例如,在一个实施例中,搜索查询可以是对多个旅行推荐的请求。在这种情况下,数据提供者系统16可以包括提供与旅行可用性相关的数据的系统,诸如全球分销系统“GDS”,并且还可以包括收集和提供用于补充旅行可用性数据的数据的附加系统,诸如包括图像搜索引擎、地图搜索引擎和天气搜索引擎的系统。
[0039] 现在参考图2,操作环境10的客户端设备12、查询处理系统14和数据提供者系统16可以在一个或多个计算机设备或系统(诸如示例性计算机系统26)上实现。计算机系统26可以包括处理器28、存储器30、大容量存储存储器设备32、输入/输出(I/O)接口34和人机接口(HMI)36。计算机系统26还可以经由网络24或I/O接口34可操作地耦合到一个或多个外部资源38。外部资源可以包括但不限于服务器、数据库、大容量存储设备、外围设备、基于云的网络服务或者可以由计算机系统26使用的任何其它合适的计算机资源。
[0040] 处理器28可以包括选自微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路或者基于存储在存储器30中的操作指令来操纵(模拟或数字)信号的任何其它设备的一个或多个设备。存储器30可以包括单个存储器设备或多个存储器设备,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、易失性存储器、非易失性存储器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、闪存、高速缓存存储器或能够存储信息的任何其它设备。大容量存储存储器设备32可以包括数据存储设备,诸如硬盘驱动器、光盘驱动器、带驱动器、非易失性固态设备或能够存储信息的任何其它设备。
[0041] 处理器28可以在驻留在存储器30中的操作系统40的控制下操作。操作系统40可以管理计算机资源,使得体现为一个或多个计算机软件应用(诸如驻留在存储器30中的应用42)的计算机程序代码可以具有由处理器28执行的指令。在替代实施例中,处理器28可以直接执行应用42,在这种情况下可以省略操作系统40。一个或多个数据结构44也可以驻留在存储器30中,并且可以被处理器28、操作系统40或应用42用来存储或操纵数据。
[0042] I/O接口34可以提供将处理器28可操作地耦合到其它设备和系统(诸如网络24或一个或多个外部资源38)的机器接口。由此,应用42可以通过经由I/O接口34通信来与网络24或外部资源38协同工作,以提供包括本发明的实施例的各种特征、功能、应用、过程或模块。应用42还可以具有由一个或多个外部资源38执行的程序代码,或者以其它方式依赖于由计算机系统26外部的其它系统或网络组件提供的功能或信号。实际上,给定几乎无尽的硬件和软件配置可能,本领域普通技术人员将理解的是,本发明的实施例可以包括位于计算机系统26的外部的应用、分布在多个计算机或其它外部资源38之间的应用,或者由经网络24作为服务(诸如云计算服务)提供的计算资源(硬件和软件)提供的应用。
[0043] HMI 36可以以已知的方式可操作地耦合到计算机系统26的处理器28,以允许用户直接与计算机系统26进行交互。HMI 36可以包括视频或字母数字显示器、触摸屏、扬声器以及能够向用户提供数据的任何其它合适的音频和视频指示器。HMI 36还可以包括能够从用户接受命令或输入并将进入的输入发送到处理器28的输入设备和控件(诸如字母数字键盘、指向设备、小键盘、按钮、控制旋钮、麦克风等)。
[0044] 数据库46可以驻留在大容量存储存储器设备32上,并且可以被用来收集和组织由本文描述的各种系统和模块使用的数据。数据库46可以包括数据以及存储和组织数据的支持数据结构。特别地,数据库46可以布置有任何数据库组织或结构,包括但不限于关系数据库、分层数据库、网络数据库或其组合。可以使用在处理器28上作为指令执行的计算机软件应用形式的数据库管理系统来响应于查询而访问存储在数据库46的记录中的信息或数据,其中查询可以由操作系统40、其它应用42或一个或多个模块动态地确定和执行。
[0045] 图3图示了可以由操作环境10的一个或多个系统提供的示例性处理体系架构50。处理体系架构50可以包括查询处理引擎52和电子数据集53,电子数据集53可以包括一个或多个主对象数据库54和一个或多个补充信息数据库56。处理体系架构50还可以包括参考点数据库58。
[0046] 在操作中,查询处理引擎52可以从电子数据集53(诸如从客户端设备12)接收搜索查询62。响应于接收到搜索查询62,查询处理引擎52可以触发与电子数据集53(或者,更特别地,主对象数据库54和补充信息数据库56)的交互,以确定用于搜索查询62的多个结果64。特别地,每个结果64可以包括来自电子数据集53(或者,更特别地,来自主对象数据库54和补充信息数据库56)的数据。其后,基于存储在参考点数据库58中的数据,查询处理引擎
52可以选择结果64中的一个以供向用户显示,诸如经由客户端设备12。然后,查询处理引擎
52可以使所选择的结果64向用户显示,诸如通过将所选择的结果64发送到客户端设备12,以供客户端设备12显示。
[0047] 在将所选择的结果64发送到客户端设备12并由客户端设备12显示之后,用户可以向查询处理引擎52提供输入66,诸如经由客户端设备12。如前面所讨论的,输入66可以指示用户是否对所显示的结果64感兴趣。响应于接收到输入66,查询处理引擎52可以基于输入66继续选择结果64中的另一个,然后使新选择的结果64显示给用户,诸如经由发送到客户端设备12。然后,用户可以提供关于新显示的结果64的另一个输入66。这个选择结果64向用户显示和接收输入66的过程可以重复,直到用户诸如经由客户端设备12指示查询处理引擎
52中止选择进一步的结果64进行显示。关于处理体系架构50的附加细节在下面参考图4至9进行讨论。
[0048] 图4图示了用于处理结合电子数据集53接收的搜索查询62的过程100。过程100可以由处理体系架构50的查询处理引擎52执行。
[0049] 在方框102中,可以在诸如查询处理引擎52处接收对电子数据集53的搜索查询62。特别地,用户可以访问可由客户端设备12和/或查询处理引擎52生成的GUI,以定义搜索查询62并将其提交给查询处理引擎52。搜索查询62可以包括由用户定义的用于搜索电子数据集53的多个搜索标准,电子数据集53可以被跨主对象数据库54和补充信息数据库56来存储。
[0050] 如前面所提到的,在一个示例性实施例中,搜索查询62可以是对多个旅行推荐的请求。更特别地,搜索查询62可以是为旅行灵感作出请求,或者换句话说,对为了用户的旅行目的地建议的请求。在这种情况下,可以包括在搜索查询62中的搜索标准的非限制性示例包括日期或日期范围、持续时间或持续时间范围、起点城市、预算或预算范围、温度或温度范围,以及距离或距离范围。
[0051] 在方框104中,响应于接收到搜索查询62,可以基于搜索查询62的搜索条件检索多个主数据对象,诸如从主对象数据库54。特别地,查询处理引擎52可以被配置为触发主对象数据库54的搜索,以检索与搜索查询62的一个或多个搜索标准匹配的多个主数据对象。由查询处理引擎52确定的每个结果64可以包括从主对象数据库54检索的主数据对象之一的至少一部分。
[0052] 当搜索查询62是对多个旅行推荐的请求时,主对象数据库54可以包括表示多个旅行选项的数据。例如,主对象数据库54可以包括一个或多个旅行数据库,这些数据库存储指示与其它交通模式相关的预定航班段和预定旅行段的数据,以及用于每个预定段的可用性数据。在一些实施例中,旅行数据库可以由一个或多个第三方系统(诸如GDS、在线旅行社(OTA)、计算机预订系统(CRS)或其它旅行搜索网站)提供。
[0053] 因此,响应于接收到对一个或多个旅行推荐的请求的搜索查询62,查询处理引擎52可以触发旅行数据库的搜索。这个搜索可以基于与存储在旅行数据库中的数据相关的搜索标准。例如,相关搜索标准可以包括日期或日期范围搜索标准、持续时间或持续时间范围搜索标准、起点搜索标准和/或预算或预算范围搜索标准。在一些情况下,查询处理引擎52可以向提供旅行数据库的第三方系统提交包括相关搜索准则的搜索请求,然后第三方系统可以继续进行旅行数据库的搜索并将结果所得的旅行选项返回到查询处理引擎52。附加地或替代地,查询处理引擎52可以被配置为使用相关搜索标准来直接搜索一个或多个旅行数据库。从旅行数据库或提供旅行数据库的第三方系统返回到查询处理引擎52的每个旅行选项可以被认为是主数据对象,并且由查询处理引擎52确定的每个结果64可以包括其中一个旅行选项的至少一部分,诸如旅行选项中包括的旅行目的地和日期或日期范围。
[0054] 在方框106中,可以为检索出的每个主数据对象检索补充数据。特别地,查询处理引擎52可以触发对补充信息数据库56的搜索,以检索关于在方框104中检索出的每个主数据对象的补充数据。当向用户显示包括给定主数据对象的全部或部分的结果64时,也可以显示为那个主数据对象检索的补充数据。这种补充数据可以辅助用户确定所显示的结果64是否是令人感兴趣的,并且还可以被查询处理引擎52用来动态地确定哪个结果64向用户显示,如下面更详细描述的。例如,当检索出的主数据对象表示多个旅行选项时,补充信息数据库56可以包括用于包括在旅行选项中的旅行目的地的附加数据。特别地,补充信息数据库56可以包括用于每个旅行目的地的天气信息、图像、统一资源定位符(URL)、地图、坐标和社交网络数据(例如,喜欢的数量)中的一个或多个。
[0055] 在一些实施例中,补充信息数据库56可以包括多个数据库,每个数据库包括与检索出的主数据对象的不同方面相关的数据。例如,当检索出的主数据对象表示多个旅行选项时,补充信息数据库56中的一个可以包括用于旅行选项中的一个或多个目的地的图像,补充信息数据库56中的另一个可以包括用于旅行选项中的一个或多个旅行目的地的天气信息,等等。
[0056] 此外,类似于主对象数据库54,补充信息数据库56中的一个或多个可以由被多个第三方操作的第三方系统提供。例如,包括旅行目的地的图像的补充信息数据库56可以由第三方的图像搜索引擎系统提供,包括用于旅行目的地的历史天气信息的补充信息数据库56可以由第三方的收集和分发天气数据的系统提供,等等。在这些情况下,为了检索用于检索出的主数据对象的补充数据,查询处理引擎52可以向提供补充信息数据库56的系统提交包括相关搜索标准的搜索请求,然后该系统可以继续搜索补充信息数据库56,并将结果所得的补充数据返回到查询处理引擎52。例如,在检索用于旅行选项的给定旅行目的地的天气信息的情况下,查询处理引擎52可以向提供天气信息的在线系统提交包括旅行目的地和日期或日期范围搜索标准的搜索请求,然后该在线系统可以将用于给定旅行目的地的该日期或日期范围的天气信息返回到查询处理引擎52。
[0057] 附加地或替代地,查询处理引擎52可以被配置为使用相关搜索标准来直接搜索一个或多个补充信息数据库56。例如,在一些实施例中,补充信息数据库56可以包括最近或经常与一个或多个先前提交的搜索查询62相关联检索的补充数据的高速缓存数据库。以这种方式,在检索出主数据对象之后但是在搜索由第三方提供的补充信息数据库56之前,查询处理引擎52可以触发高速缓存数据库的搜索,以检索与检索出的主数据对象的一个或多个或其子集相关的补充数据。因为高速缓存数据库可以相对地本地和/或直接连接到查询处理引擎52,所以它可以使查询处理引擎52能够比向第三方系统提交搜索请求更快地接收用于一个或多个主数据对象的补充数据。在搜索高速缓存数据库之后,查询处理引擎52然后可以继续向第三方系统提交搜索请求,以便对于没有补充数据在高速缓存数据库中可用或可从中检索的那些主数据对象,从第三方系统提供的补充信息数据库56检索补充数据。
[0058] 在方框108中,可以诸如通过查询处理引擎52为搜索查询62确定多个结果64,其中结果64中的每一个可以包括从电子数据集检索的数据。特别地,查询处理引擎52可以基于检索出的主数据对象和为每个检索出的主数据对象检索的补充数据来制定结果64,诸如通过将每个检索出的主数据对象的全部或部分与从那个主数据对象检索出的补充数据组合成结果64。换句话说,每个结果64可以包括其中一个主数据对象的至少一部分,诸如旅行选项的旅行目的地和/或日期,以及为主数据对象检索的补充数据。
[0059] 由查询处理引擎52确定的每个结果64还可以包括一个或多个指派给它的值,这些值描述相对于一个或多个类别的结果64。这一个或多个类别可以与搜索查询62中包括的至少一些搜索标准重叠。例如,当结果64包括旅行推荐时,一个或多个类别可以包括价格类别、距离类别、持续时间类别和/或天气类别。
[0060] 更特别地,结果64中的每个结果可以包括各自与一个或多个类别中的一个不同类别相关的一个或多个属性。例如,当结果64包括旅行推荐时,每个旅行推荐可以包括与价格类别相关的价格、在特定日期或日期范围期间在旅行目的地的平均温度(其与天气类别相关),以及旅行目的地与包括在搜索查询62中的起点搜索标准的距离(其与距离类别相关)。查询处理引擎52可以基于结果64的属性将多个值指派给每个结果64,其中指派给给定结果
64的每个值与该值所基于的属性所相关的类别相关联。例如,再次参考结果64包括旅行推荐的情况,如果给定结果64包括指示结果64的旅行目的地在用户提交的日期或日期范围期间具有非常热的属性的补充数据,那么查询处理引擎52可以向结果64为天气类别指派相对高的值(例如,向结果64为天气类别指派100%的值)。可替代地,如果补充数据指示旅行目的地在用户提交的日期或日期范围期间具有相当冷的属性,那么查询处理引擎52可以向结果64为天气类别指派相对低的值(例如,向结果64为天气类别指派10%的值)。也可以基于结果64的其它属性向结果64为了其它类别进行类似的指派。
[0061] 在一些实施例中,对于一个或多个类别中的每一个,可以指派给给定结果64用于该类别的可能值的范围中的每个值可以与和该类别相关的结果64的潜在属性或潜在属性范围相关联。例如,关于价格类别,可以指派给给定结果64的可能值的范围可以是1至10,其中1与少于一百美元的旅行选项相关联,2与一百和二百美元之间的旅行选项相关联,等等。附加地或替代地,指派给结果64用于给定类别的值可以等同于结果64相对于给定类别的属性。例如,如果结果64指示在旅行目的地在所提交的日期或日期范围期间的平均温度等于八十四华氏度的数值,那么查询处理引擎52可以向结果64为天气类别指派值84。
[0062] 每个类别也可以被指派权重值,诸如由查询处理引擎52。一般而言,指派给类别的权重值可以指示该类别对用户的重要性(例如,权重值越高,相关联的类别越重要)。例如,每个权重值可以是百分比或数字。在一些实施例中,用户可以在创建搜索查询62时为一个或多个类别定义权重值,使得所定义的权重值可以在被提交到查询处理引擎52时包括在搜索查询62中,然后查询处理引擎52可以相应地向一个或多个类别指派权重值。附加地或替代地,响应于接收到搜索查询62,查询处理引擎52可以自动地将权重值指派给一个或多个类别,诸如基于包括在与提交用户相关联的用户简档中的信息。例如,用户简档可以指示距离对用户来说是不重要的因素,因此距离类别应当与低权重值相关联,并且价格对于用户来说是相当重要的因素,因此价格类别应当与高权重值相关联。可替代地,用户简档可以明确地为查询处理引擎52阐述不同的权重值以指派给一个或多个类别。
[0063] 在方框110中,可以确定初始数据参考点,诸如由查询处理引擎52。初始数据参考点可以基于搜索查询62,并且更特别地,可以表示理论上对搜索查询62的“完美”结果。就像结果64,初始数据参考点可以包括相对于一个或多个类别指派给它的一个或多个值。具体而言,指派给初始数据参考点的一个或多个值中的每一个可以与一个或多个类别中的一个不同类别相关联。查询处理引擎52可以被配置为基于搜索查询62中的一个或多个搜索标准、并且基于存储在参考点数据库58中的数据来确定初始数据参考点。
[0064] 具体而言,参考点数据库58可以包括与由查询处理引擎52接收和处理的先前搜索查询62相关的历史数据。历史数据可以针对每个先前的搜索查询62指示用户表示感兴趣和/或导致购买的结果64。因此,为了确定初始数据参考点,查询处理引擎52可以从参考点数据库58检索用于与当前正在处理的搜索查询62相同或相似(例如,具有相同或相似的搜索标准)的先前搜索查询62的历史数据。其后,查询处理引擎52可以基于指派给检索出的历史数据中令人感兴趣和/或购买的结果64的值来确定初始数据参考点。例如,对于一个或多个类别中的每个类别,查询处理引擎52可以计算对于那个类别指派给令人感兴趣和/或购买的结果64中的每一个的值的平均值,然后将平均值为那个类别指派给数据参考点。
[0065] 在一些实施例中,查询处理引擎52可以在接收到所考虑的搜索查询62之前确定初始数据参考点。特别地,在具有相同或相似的搜索标准的先前搜索查询62已经完成被查询处理引擎52处理之后,查询处理引擎52可以被配置为基于用户与先前的搜索查询62相关地采取的动作来计算和存储数据参考点,诸如指示结果64是令人感兴趣的和/或基于结果64进行购买。具体而言,查询处理引擎52可以被配置为从令人感兴趣和/或购买的结果计算平均值,并且基于这些平均值定义数据参考点,如上所述。查询处理引擎52可以在接收到当前搜索查询62之前多次执行这种计算,每次计算都是基于附加的搜索查询62来更新先前确定的数据参考点,或者基于一组尚未为其计算的数据参考点的、具有相同或相似搜索标准的先前的搜索查询62重建新的数据参考点。在创建或更新数据参考点后,查询处理引擎52可以被配置为将数据参考点存储在参考点数据库58中,使得它与参考点数据库58中数据参考点所基于的一个或多个搜索标准相关联。以这种方式,当在查询处理引擎52接收到当前搜索查询62时,查询处理引擎52可以基于当前搜索查询62的搜索标准从参考点数据库58检索适当的数据参考点,并且在不必计算数据参考点的情况下这么做,这使查询处理引擎52能够通过减少系统等待时机来实现改进的响应时间。
[0066] 在另外的实施例中,初始数据参考点可以由用户手动设置(例如,指派给初始数据参考点的每个值可以对应于包括在搜索查询62中的搜索标准,而不是基于从先前搜索查询62计算的平均值)。可替代地,初始数据参考点可以由系统管理员定义。查询处理引擎52还可以利用社会媒体数据(例如,通过登录从 或 检索的数
据)和/或与由具有相似特点的用户提交的先前搜索查询62相关联的用户行为数据,以确定初始数据参考点。例如,如果社交媒体数据和/或行为数据指示特定年龄组中的人通常喜欢较低价格的旅行选项,那么为由特定年龄组中的用户提交的搜索查询62确定的初始数据参考点可以包括用于价格类别的值,该值低于从与当前正在处理的搜索查询62具有相同或相似搜索标准的先前搜索查询62为该价格类别计算的平均值。
[0067] 在方框112中,可以确定最接近于数据参考点的结果64,诸如由查询处理引擎52。特别地,查询处理引擎52可以被配置为确定结果64中的哪一个最接近于初始数据参考点,诸如通过将指派给用于一个或多个类别的结果64中的每一个的值与指派给用于一个或多个类别的初始数据参考点的值进行比较,并且选择最接近于初始数据参考点的结果64用于显示给用户。
[0068] 在一些实施例中,查询处理引擎52可以通过计算每个结果64与初始数据参考点之间的加权二次距离来进行比较。这种计算可以基于初始数据参考点的值和指派给用于一个或多个类别的结果64中的每一个的值,并且还可以基于指派给一个或多个类别的、指示每个类别对于用户来说有多重要的权重值。然后,查询处理引擎52可以选择具有最低加权二次距离的结果64作为最接近于初始数据参考点的结果64。查询处理引擎52可以使用以下公式计算每个结果64的加权二次距离:
[0069]
[0070] 其中n是类别的个数,Ci是指派给第i个类别的初始数据参考点的值,Vi是为第i个类别指派给结果64的值,并且Wi是针对提交搜索查询的特定用户62的用于第i个类别的权重值。
[0071] 在方框114中,可以向用户显示确定为最接近于数据参考点的被选结果64,用于让他或她审查。特别地,查询处理引擎52可以使被选结果64被发送到客户端设备12,客户端设备12在接收到结果64后可以被配置为向用户显示结果64。
[0072] 图5图示了用于响应于从用户接收到关于先前显示结果64的输入66而选择用于向用户显示的后续结果64的过程200。过程200可以由查询处理引擎52执行。
[0073] 在方框202中,在先前结果64被发送到客户端设备12并由客户端设备12显示之后,可以在诸如查询处理引擎52处接收与先前显示的结果相关的输入66。特别地,用户可以利用客户端设备12来生成输入66并将输入66提交给查询处理引擎52。输入66可以指示用户是否对先前显示的结果64感兴趣。例如,输入66可以包括对先前显示的结果64的拒绝,并且可以包括拒绝的理由。可替代地,输入66可以包括用户对先前显示的结果64感兴趣的指示。
[0074] 在方框204中,响应于接收到输入66,可以确定输入66是否表示对先前显示的结果64感兴趣或对先前显示的结果64的拒绝。如果输入66表示用户对先前显示的结果64感兴趣(方框204的“否”分支),那么在方框206中,先前显示的结果64可以被添加到高速缓存。这个高速缓存可以包括向用户显示的、用户指示感兴趣的每个结果64。以这种方式,用户可以稍后参考高速缓存来审查他或她感兴趣的结果64,并且有可能基于一个或多个高速缓存的结果64进行购买。
[0075] 在先前显示的结果64被添加到高速缓存之后,在方框208中,还没有被发送到客户端设备12以进行显示并且最接近于初始数据参考点的结果64(即,“剩余”结果64中的一个)可以被确定,诸如经由上述的加权二次距离公式,以供客户端设备12显示。在方框210中,确定的结果64可以被显示给用户,诸如经由确定的结果64到客户端设备12的传输,然后客户端设备12可以显示确定的结果64并接收关于确定的结果64的另一个输入66。
[0076] 可替代地,如果输入66指示用户不感兴趣并且已经拒绝先前显示的结果64(方框204的“是”分支),那么在方框212中,先前显示的结果64可以被丢弃。其后,在方框214中,可以基于输入66来调整初始数据参考点。特别地,输入66可以包括拒绝先前显示的结果64的理由,并且初始数据参考点可以基于该理由进行调整。在一个实施例中,理由可以指示与类别之一相关联的先前显示的结果64的属性(以及对应地指派给用于一个类别的先前显示的结果64的值)从用户的观点来看太高(或太低)。响应于接收到这种理由,查询处理引擎52可以通过减小(或增加)指派给与和由理由指示为太高(或太低)的属性(以及对应地值)相关联的类别相关联的初始数据参考点的值(并且相应地增加)来调整初始数据参考点价值。
[0077] 例如,理由可以指示可以与天气类别相关联的、提议旅行目的地的平均温度从用户的观点来看太冷(或太热)。因而,响应于接收到具有这种理由的输入66,查询处理引擎52可以通过增加(或减小)指派给天气类别的初始数据参考点的值,诸如通过固定的数字(例如,1、2、5、10等)、因子或百分比,来调整初始数据参考点。作为其它示例,理由可以指示旅行推荐包括太贵或不够贵的价格或者包括太接近起点搜索标准或不够接近的旅行目的地,这可以使查询处理引擎52分别调整指派给数据参考点的价格类别或距离类别的值。
[0078] 当输入66的理由与特定类别(诸如价格类别)相关时,可以假设这个特定类别对于用户来说是重要的,因为这个类别正由用户主动管理。因而,在一些实施例中,在接收到包括与给定类别相关的理由的输入66时,查询处理引擎52可以被配置为增加指派给与理由相关的类别的权重值,诸如通过固定的数字、因子或百分比。例如,如果输入66指示与旅行推荐相关联的温度太低,那么搜索查询62可以被配置为在确定最接近于已调整的数据参考点的剩余结果64之前增加指派给天气类别的权重值。以这种方式,当确定哪个剩余结果64最接近于已调整的数据参考点时,温度类别将具有附加的影响。换句话说,被选择由客户端设备12显示的下一个结果64可以基于增加的权重值。
[0079] 在方框216中,在调整了初始数据参考点之后,并且有可能在增加指派给一个类别的权重之后,尚未发送到客户端设备12并且最接近于已调整的数据参考点的结果64可以被选择进行显示。特别地,如上面所讨论的,查询处理引擎52可以计算已调整的数据参考点与尚未发送到客户端设备12进行显示的每个结果64之间的加权二次距离,并且选择具有最低加权二次距离的结果64作为向用户显示的下一个结果64。以这种方式,查询处理引擎52可以基于拒绝先前显示结果64的理由来选择下一个结果64进行显示。
[0080] 在最接近于已调整的数据参考点的结果64被选择之后,在方框210中,所选择的结果64可以显示给用户,诸如经由查询处理引擎52将所选择的结果64发送到客户端设备12以便由客户端设备12显示。然后可以针对由用户为所显示的结果64提供的每个输入66重复过程200。
[0081] 图6和7提供了图示过程100和200的示例的图。特别地,图6图示了包括初始数据参考点302a以及结果304、306和308的图300a。结果304、306和308以及初始数据参考点302a中的每一个包括针对“类别A”为其指派的值和针对“类别B”为其指派的值。如前面所讨论的,在过程100的方框112中,可以确定最接近于初始数据参考点302a的结果64,诸如使用上述加权二次距离公式。基于图300a,最接近于初始数据参考点302a的结果64可以是结果304。因而,在过程100的方框114中,结果304可以被显示给用户进行审查,诸如经由传输到客户端设备12。
[0082] 图7图示了可以表示过程200的方框214的结果的示例性图300b。特别地,在显示结果304之后,用户可以提供指示显示结果304相对于类别A的属性是太高的输入66。因而,如图300b中所示,可以调整初始数据参考点302a,以便为类别A指派较低的值(即,已调整的数据参考点302b)。其后,在过程200的方框216中,可以确定哪个剩余结果64最接近于已调整的数据参考点302b。在所示的实施例中,最接近于已调整的数据参考点302b的剩余结果64可以是结果308。因而,在过程200的方框210中,结果308可以被显示给用户进行审查,诸如经由传输到客户端设备12。要指出的是,如果输入端66已经指示用户对结果64感兴趣,那么初始数据参考点302a可能未被调整,并且在过程200的方框208中,最接近于初始数据参考点302a的剩余结果64可以是结果306而不是结果308。而且,指派给类别A和类别B的权重值的差异也会影响上面的结果。
[0083] 图8图示了可以由客户端设备12和/或查询处理引擎52生成以向用户显示所选择的结果64的示例性GUI 400。特别地,客户端设备12可以被配置为响应于接收到被选择以显示给用户的结果64而在客户端设备12的屏幕上显示GUI 400。GUI 400可以被配置为接受来自用户的、指示用户对显示结果64感兴趣或者不感兴趣的输入。在所示实施例中,显示的结果64是包括曼谷作为建议旅行目的地的旅行推荐。
[0084] GUI 400可以包括图像510(例如,曼谷的图像),这可以是被选择显示给用户的结果64的补充数据部分的一部分。图像510可以在过程100期间已经从补充信息数据库56之一被检索出来。GUI 400还可以包括交互式图标504,每个图标504与类别中值已被指派给被选择以供显示的结果64的一个不同类别相关联。在所示实施例中,交互式图标504包括与天气类别相关联的图标504a、与距离类别相关联的图标504b以及与价格类别相关联的图标504c。交互式图标504可以由用户用来生成输入66并向查询处理引擎52提供,该输入指示用户对显示结果64不感兴趣的理由,下面将更详细地描述。
[0085] GUI 400还可以包括被选择用于向用户显示的结果64中包括的其它信息。例如,当结果64是旅行推荐时,GUI 400还可以包括旅行目的地名称506(例如,曼谷)/日期或日期范围508(例如,1月22日星期一至2月5日星期三)、价格512(例如,255欧元/人)、天气信息514(例如,一个或多个相关日期的平均气温为二十二度,部分多云)、社交网络数据516(例如,123人喜欢该旅行目的地),和/或距离信息518(例如,旅行目的地距离搜索查询62中提供的起点搜索标准为7207公里)。GUI 400还可以包括交互式图标520(例如,竖起大拇指符号),当其被选择时,可以生成指示用户对显示结果64感兴趣的输入66并向查询处理引擎52提供。交互式图标520还可以包括数字(例如2),该数字表示用户已经指示兴趣的先前结果64的数量。除了交互式图标520或代替其,GUI 400可以被配置为使得点击图像510生成指示用户对显示结果64感兴趣的输入66并向查询处理引擎52提供。
[0086] 图9图示了用户如何与GUI 400交互,以向查询处理引擎52提供指示用户对显示结果64不感兴趣的输入66。在所示实施例中,用户可以选择交互式图标504中与值已被指派给结果64的类别相关联的一个交互式图标,并且将该图标朝着GUI 400的顶部或GUI 400的底部拖动。在与交互式图标504中的一个进行交互以及对其进行移动后,GUI 400可以被配置为显示增加图形602和减小图形604。响应于用户将交互式图标504中的一个拖动到增加图形602或其附近,可以生成指示用户对所选择的结果64不感兴趣的输入66并将其提供给查询处理引擎52,因为与被拖动的图标相关联的类别所相关的显示结果64的属性太低。可替代地,响应于用户将交互式图标504中的一个拖动到减小图形604或其附近,可以生成指示用户对显示结果64不感兴趣的输入66并将其提供给查询处理引擎52,因为与被拖动的图标相关联的类别所相关的结果64的属性太高。例如,在所示实施例中,用户已经选择并拖动在增加图形602附近的、与距离类别相关联的图标504b。因而,一旦图标504b被用户释放,查询处理引擎52就可以接收指示用户对作为旅行目的地的曼谷不感兴趣的输入66,因为它离用户的起点不够远,并且基于此,通过为距离类别指派增加的值来调整数据参考点。
[0087] GUI 400还可以被配置为支持用户的附加手势,以便指示用户对被选择显示给用户的结果64的兴趣或不感兴趣。例如,如果用户对显示结果64感兴趣,那么GUI 400可以被配置为使得用户可以选择并向上滑动图像510。作为响应,随着交互式图标520包括的数字可以增加,因为另一个结果64可以作为用户手势的结果而添加到高速缓存(过程200的方框206)。可替代地,如果用户对当前显示的结果64不感兴趣,但不希望更改当前数据参考点,那么GUI 400可以被配置为使用户能够选择并向下滑动图像510,而不与交互式图标504交互。因此,可以跳过过程200的方框214,并且查询处理引擎52可以通过确定最接近于未调整的数据参考点的剩余结果64来继续执行过程200的方框216。此外,GUI 400可以被配置为使得,当用户触摸并释放图像510时,可以经由GUI 400提供关于显示结果64的附加细节。
[0088] 而且,为了限制包括在GUI 400中的交互式图标504的数量,以便不会使客户端设备12的显示器过度拥挤,而且还使用户能够有效地指示他或她对显示结果64不感兴趣的理由,与交互式图标504相关联的类别可以针对用户和/或用户的行为被动态地剪裁。例如,如果社交网络数据(诸如来自补充信息数据库56)指示用户是通常不涉及特定类别的组(诸如特定年龄组)的一部分,那么GUI 400可以被生成,以便省略与那个类别相关联的交互式图标504,而是代替地显示与另一个类别(诸如持续时间类别)相关联的交互式图标504。而且,当用户为显示结果64提供输入66时,由于缺乏使用与特定类别(诸如价格类别)相关联的交互式图标504,可能变得很明显的是用户无法将焦点集中在该特定类别上。因而,对于向用户显示的随后结果64,GUI 400可以用与对于用户来说可能更重要的类别(诸如持续时间类别)相关联的交互式图标504代替与特定类别相关联的交互式图标504。
[0089] 一般而言,实现本发明实施例要执行的例程(无论是实现为操作系统的一部分还是具体的应用、组件、程序、对象、模块或指令序列,或甚至其子集)都可以在本文被称为“计算机程序代码”,或简称为“程序代码”。程序代码通常包括在各种时间驻留在计算机中的各种存储器和存储设备中的计算机可读指令,并且当由计算机中的一个或多个处理器读取和执行时,使该计算机进行执行体现本发明实施例的各个方面的要素和/或操作所需的操作。用于执行本发明实施例的操作的计算机可读程序指令可以是例如汇编语言或者以一种或多种编程语言的任意组合书写的源代码或目标代码。
[0090] 本文描述的各种程序代码可以基于在本发明具体实施例中实现的应用来识别。但是,应当认识到的是,以下的任何特定程序命名仅仅是为了方便而使用,因此本发明不应当限于仅在由这种命名识别和/或暗示的任何具体应用中使用。此外,给定计算机程序可以被组织成例程、过程、方法、模块、对象等的通常无限数量的方式,以及程序功能可以在驻留在典型计算机内的各种软件层(例如,操作系统、库、API、应用、小应用程序等)之间分配的各种方式,应当认识到的是,本发明的实施例不限于本文描述的程序功能的具体组织和分配。
[0091] 本文描述的任何应用/模块中体现的程序代码能够作为各种不同形式的程序产品单独地或集体地分布。特别地,可以使用其上具有计算机可读程序指令的计算机可读存储介质来分发程序代码,以使处理器执行本发明的实施例的各个方面。
[0092] 固有地非暂态的计算机可读存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动的有形介质。计算机可读存储介质还可以包括RAM、ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其它固态存储器技术,便携式光盘只读存储器(CD-ROM)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备,或者可以被用来存储期望信息并可以被计算机读取的任何其它介质。计算机可读存储介质不应当被认为本身是暂态信号(例如,无线电波或其它传播电磁波、通过诸如波导的传输介质传播的电磁波,或通过导线传输的电信号)。计算机可读程序指令可以经由网络从计算机可读存储介质下载到计算机、另一种类型的可编程数据处理装置或另一种设备,或下载到外部计算机或外部存储设备。
[0093] 存储在计算机可读介质中的计算机可读程序指令可以被用来指引计算机、其它类型的可编程数据处理装置或其它设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括指令的制品,其中指令实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的一个或多个处理器,以产生机器,使得指令在经由一个或多个处理器执行时使得执行一系列计算,以实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。
[0094] 在某些替代实施例中,流程图、序列图和/或框图中指定的功能、动作和/或操作可以与本发明的实施例一致地重新排序、串行处理和/或并发处理。而且,流程图、序列图和/或框图中的任何一个可以与本发明的实施例一致地包括比所示更多或更少的方框。
[0095] 本文使用的术语仅用于描述特定的实施例,而不意在限制本发明的实施例。如本文所使用的,单数形式“一个”和“该”也意在包括复数形式,除非上下文另有明确指示。将进一步理解的是,当在本说明书中使用时,术语“包括”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。此外,就在详细描述或权利要求中使用术语“包含”、“具有”、“由...组成”或其变体的术语的程度而言,这些术语意在包括在类似于术语“包括”的方式中。
[0096] 虽然已经通过各种实施例的描述说明了所有发明,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围限定或以任何方式限制到这种细节。附加的优点和修改对于本领域技术人员将是容易看出的。因此,本发明的更广泛的方面不限于所述具体细节、代表性装置和方法以及示出和描述的说明性示例。因而,在不背离本申请人的总体发明构思的精神或范围的情况下,可以从这些细节中作出偏离。

当前第1页 第1页 第2页 第3页