用于实时接收和传播高效搜索更新的系统和方法

文档序号:157296 发布日期:2021-10-26 浏览:13次 >En<

阅读说明:本技术 用于实时接收和传播高效搜索更新的系统和方法 (System and method for receiving and propagating efficient search updates in real-time ) 是由 李相元 于 2020-12-10 设计创作,主要内容包括:一种用于接收和传播高效搜索更新的系统包括:一个或多个处理器,配置为通过网络从第一外部系统接收第一实体变更请求,以修改与第一外部系统相关联的实体中的数据。第一实体变更请求保存到实体存储中。接收的实体变更请求从实体存储推送到事件发布器,以转发到流服务。第一个实体变更请求被归类并从流服务转发到搜索索引数据库。基于归类的实体变更请求继而更新搜索索引。(A system for receiving and propagating efficient search updates comprising: one or more processors configured to receive a first entity change request from a first external system over a network to modify data in an entity associated with the first external system. The first entity change request is saved to an entity store. The received entity change request is pushed from the entity store to the event publisher for forwarding to the streaming service. The first entity change request is categorized and forwarded from the streaming service to the search index database. The search index is then updated based on the categorized entity change request.)

用于实时接收和传播高效搜索更新的系统和方法

技术领域

本公开的实施例涉及用于实时接收和传播高效搜索更新的系统和方法。更具体的,本公开的实施例涉及通过实时接收和传播高效搜索更新至用户设备,使用户能够来在线订购商品以及递送商品。

背景技术

用户(例如,在线客户、在线商户、递送人员)经常使用在线网站门户或移动应用程序来订购商品(例如,订购食物、杂货)。举例来说,用户在在线网站上维护包括他们的信息(例如,位置信息,菜单,名称)的档案。在用户修改档案信息的情况下,从进行修改到在线网站门户网站上反映出该修改之间存在明显的时间延迟或时间差。由此,反映修改的延迟给用户带来不便。

举例来说,当餐厅通过用于食品订购网站的在线网站门户更新其在线菜单内容(例如,菜名、菜价、餐厅营业时间等)时,则在线菜单的修改将在相当长的时间延迟后才会反映在食品订购网站上。用于这些更新过程的当前解决方案不是实时的,因为这些更新请求是成批处理的。网络服务器会在定期时间段处理请求,以便在时间段结束时将在这些时间段内接收的请求作为一批而一起处理。网络服务器分批处理更新,导致将更新反映给用户的时间显著延迟。因而,当前的方案效率低下并产生延迟,因此存在实时反映更新的需求。

发明内容

根据本公开的实施例,提供了一种用于接收和传播高效搜索更新的系统,该系统包括:存储指令的存储器;以及至少一个处理器,配置为执行所述指令以:通过网络从第一外部系统接收第一实体变更请求,以修改与第一外部系统相关联的实体中的数据;将接收的第一实体变更请求保存到实体存储中;将所述接收的实体变更请求从所述实体存储推送到事件发布器,以转发到流服务;归类所述第一个实体变更请求;将归类的实体变更请求从流服务转发到搜索索引数据库;基于归类的实体变更请求更新搜索索引。

根据本公开的实施例,还提供一种用于接收和传播高效搜索更新的计算机实现的方法,该方法包括:通过网络从第一外部系统接收第一实体变更请求,以修改与第一外部系统相关联的实体中的数据;将接收的第一实体变更请求保存到实体存储中;将接收的实体变更请求从实体存储推送到事件发布器,以转发到流服务;归类所述第一实体变更请求;将所述归类的实体变更请求从流服务转发到搜索索引数据库;以及基于所述归类的实体变更请求更新搜索索引。

根据本公开的实施例,提供了一种用于接收和传播高效搜索更新的系统,该系统包括:存储指令的存储器;和至少一个处理器,配置为执行所述指令以:通过网络从第一外部系统接收第一实体变更请求,以修改与第一外部系统相关联的实体中的数据;将接收的第一实体变更请求保存到事件存储中;将所述接收的实体变更请求从所述事件存储推送到事件发布器,以转发到流服务;将所述接收的实体变更请求从所述事件存储推送到第二事件发布器,以存储在缓存数据库中,其中将所述接收的事件变更请求从所述事件存储推送到事件发布器和第二事件发布器包括将所述接收的实体变更请求形式化为简要说明;响应于从所述事件存储推送所述接收的实体变更请求,清除所有实体变更请求的事件存储;归类所述第一个实体变更请求;将归类的实体变更请求从流服务转发到搜索索引数据库;以及基于所述归类的实体变更请求更新搜索索引。

附图说明

附图被并入到说明书并作为说明书中的一部分,附图示出了所公开的实施例,并且与说明书一起,用于解释所公开的实施例。在图中:

图1是与公开的实施例一致的示例性系统的框图;

图2是与公开的实施例一致的示例性服务器系统的框图;

图3是与公开的实施例一致的示例性用户设备的框图;

图4A和图4B包含与所公开的实施例一致的实时接收和传播高效搜索更新的示例性过程的详细流程图。

图5包含示出与公开的实施例一致的,图4A和图4B的示例性过程的流程图。

图6包含示出了与公开的实施例一致的,图5的替代实施例的流程图,图5示出了图4A和图4B的示例性过程。

具体实施方式

现在将详细参考所公开的实施例,其示例在附图中示出。在任何方便的地方,在所有附图中将使用相同的附图标记指代相同或相似的部件。

虽然以下描述针对实时接收和传播高效搜索更新,但是这些实施例仅是示例性的。应当理解,本公开不限于仅示例性的具体公开的实施例和细节。还应理解,根据已知的系统和方法,本领域的普通技术人员将意识到,根据具体的设计和其它需求,可以将本公开的实施例用于其期望目的和益处的任何数量的替代实施例中。

图1是用于执行与所公开的实施例一致的一个或多个操作的示例性系统100的框图。在一些实施例中,系统100包括分别位于相应客户位置104(1),…104(n)的一个或多个客户设备102(1),…,102(n)、分别位于相应的递送运输工具108(1),...108(n)中的一个或多个商品递送供应商设备106(1),…106(n)、位于相应的商铺112(1),...112(n)的一个或多个商品服务供应商设备110(1),...110(n)。此外,系统100包括集成服务器系统116、远程数据库120和通信网络114。系统100还可以包括多个集成服务器系统116(图中未示出)和多个远程数据库120(图中未示出),彼此之间直接通信,并且进一步与客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)通过通信网络114进行通讯。系统100中包括的组件和组件的布置可以变化。因此,系统100可包括执行或帮助执行与所公开的实施例一致的一个或多个操作的其他组件。

如下面更全面地描述,客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)、集成服务器系统116和远程数据库120可以包括一个或多个计算设备(例如,计算机、服务器等)、存储数据和/或软件指令的存储器(例如,数据库、存储设备等)以及其他已知的计算组件。在一些实施例中,一个或多个计算设备可以被配置为执行存储在存储器中的软件指令以执行与所公开的实施例一致的一个或多个操作。客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)、集成服务器系统116和远程数据库120的方面,例如,可以被配置为通过通信网络114与系统100的一个或多个其他组件进行通信。在某些方面,与客户位置104(1)-104(n)关联的客户分别与客户设备102(1)-102(n)相关联并操作客户设备102(1)-102(n),与递送运输工具108(1)-108(n)关联驾驶员分别与商品递送供应商设备106(1)-106(n)相关联并操作商品递送供应商设备106(1)-106(n),与商铺112(1)-112(n)关联的商家分别与商品服务供应商设备110(1)-110(n)相关关联并操作商品服务供应商设备110(1)-110(n),以通过与公开的实施例一致的发送和接收通信、发起操作和/或为一个或多个操作提供输入来与系统100的一个或多个组件进行交互。

集成服务器系统116可以与在线订购实体相关联,该实体接收、处理、管理或以其他方式提供商品订购服务。例如,可以通过在线订购实体订购的商品可以包括准备好的食物、杂货、家具、书籍、计算机和/或衣服,但是也可以订购任何其他类型的商品。例如,集成服务器系统116可以从使用客户设备102(1)-102(n)的客户接收订单请求,并且通过将请求发送到商品服务供应商设备110(1)-110(n)来处理接收的订单请求,商品服务供应商设备110(1)-110(n)与将提供订购商品的商铺112(1)-112(n)相关联。集成服务器系统116从商品服务供应商设备110(1)-110(n)接收订单确认通信。当从商品服务供应商设备110(1)-110(n)接收到订单确认时,集成服务器系统116向商品递送供应商设备106(1)-106(n)发送请求,以从商家112(1)-112(n)那里收取订单并将订单递送到客户位置104(1)-104(n)。商品递送供应商设备106(1)-106(n)接受请求并收取所请求的商品并将其递送到客户位置104(1)-104(n)。

系统100的远程数据库120可以直接或通过通信网络114通信连接到集成服务系统116。此外,系统100的远程数据库120可以通过通信网络114而通信连接到客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)和商品服务供应商设备110(1)-110(n)。远程数据库120可以包括一个或多个存储信息的存储设备,存储设备被系统100的一个或多个组件访问或由其管理。作为示例,远程数据库120可以包括OracleTM数据库、SybaseTM数据库或其他关系数据库或非关系数据库,例如Hadoop序列文件、HBase或Cassandra。远程数据库120可以包括计算组件(例如,数据库管理系统、数据库服务器等),其被配置为接收和处理对存储在远程数据库120的存储设备中的数据的请求,并提供来自远程数据库120的数据。

远程数据库120被配置为存储与位于商铺112(1)-112(n)处的商品服务供应商设备110(1)-110(n)关联的商家的商家档案信息、与位于客户位置104(1)-104(n)的客户设备102(1)-102(n)关联的客户的客户档案信息、以及与商品递送供应商设备106(1)-106(n)关联的驾驶员的驾驶员档案信息。在一些实施例中,远程数据库120存储数据条目,该数据条目包括例如商家档案信息、客户档案信息和驾驶员档案信息。

商铺112(1)-112(n)可以包括餐厅、咖啡店、书店、服装店,但是也可以包括任何其他类型的商店。此外,商家档案信息包括商铺名称、商店菜单、商家提供的商品列表、食物图片、商铺的图片、商品类别、食物类别、商家地址、商铺营业时间和/或商家电话,但是也可以包括与商家相关的任何其他类型的信息。客户位置104(1)-104(n)可以包括居住地点、办公楼、公寓,但是也可以包括任何其他类型的居所。此外,远程数据库120中的客户档案信息可以包括客户名称、客户家庭住址、客户图片和/或客户电话,但是也可以包括与商家相关联的任何其他类型的信息。递送运输工具108(1)-108(n)可以包括汽车、自行车、卡车、公共汽车,但是也可以包括任何其他类型的递送运输工具。此外,驾驶员档案信息包括驾驶员姓名、驾驶员家庭地址、驾驶员的照片和/或驾驶员电话、驾驶员驾驶的运输工具的形式和型号,但是也可以包括与驾驶员相关联的任何其他类型的信息。

在一个方面,集成服务器系统116可以包括一个或多个计算设备,其被配置为执行与所公开的实施例相一致的一个或多个操作,如下面关于图4A、图4B以及图5更充分描述的。在一方面,集成服务器系统116可以包括一个或多个服务器或服务器系统。集成服务器系统116可以包括一个或多个处理器,其被配置为执行存储在存储器或其他存储设备中的软件指令。一个或多个处理器可以被配置为执行所存储的软件指令以执行与互联网有关的通信、基于在线订单的处理以及实时接收和传播高效搜索更新。集成服务器系统116的一个或多个计算设备可以被配置为修改和存储客户档案信息、商家档案信息和/或驾驶员档案信息。集成服务器系统116的一个或多个计算设备还可被配置为与系统100的其他组件通信以实时接收和传播高效搜索更新。在一些实施例中,集成服务器系统116可以提供一个或多个移动应用程序、网站或在线门户,客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)可通过通信网络114访问该移动应用程序、网站或在线门户。公开的实施例不限于集成服务器系统116的任何特定配置。

通信网络114可以包括配置为在系统100的组件之间提供通信或交换数据或两者的任何类型的计算机网络布置。例如,通信网络114可以包括提供通信、交换信息和/或促进信息交换的任何类型的网络(包括基础设施),例如互联网、私有数据网络、使用公共网络的虚拟私有网络、LAN或WAN网络、Wi-FiTM网络和/或其他合适的可以实现系统100的各个组件之间信息交换的连接。通信网络114还可以包括公共交换电话网络(“PSTN”)和/或无线蜂窝网络。通信网络114可以是安全网络或不安全网络。在一些实施例中,系统100的一个或多个组件可以通过专用通信链路直接通信。

客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)可以是一个或多个配置为执行与所公开的实施例一致的一个或多个操作的计算设备,如下面关于图2更全面地描述的。客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)可以执行浏览器或相关的移动显示软件,以在显示器上显示用于递送商品在线订购、接收订单和递送订购商品的在线门户。显示器包括在客户设备102(1)-102(n)中或连接到客户设备102(1)-102(n)上。客户设备102(1)-102(n)还可以存储和执行其他移动应用程序,这些应用程序允许客户、商家和/或驾驶员与集成服务器系统116提供的在线门户进行交互。

应当理解,为了便于描述,本文中已经定义了系统100的功能块的配置。系统100中包括的组件和组件的布置可以变化。例如,在一些实施例中,系统100可以包括执行或帮助执行与公开的方法一致的一个或多个过程的其他组件。系统100包括通常被描述为计算设备的多个组件。每个计算设备可以包括任意数量的计算组件,这些计算组件特别配置为专用计算设备以执行本文公开的功能。基于本文所包含的教导,替代方案(包括本文描述方案的等同物、扩展、变化、偏差等)对于本领域技术人员而言是显而易见的。这样的替代方案落入所公开的实施例的范围和精神内。

图2示出了与所公开的实施例一致的示例性服务器设备200。示例性服务器设备200的变体可以构成集成服务器系统116的一个或多个组件。在一个实施例中,服务器设备200包括通过总线234进行通信的一个或多个存储器202、一个或多个I/O设备206以及一个或多个处理器208。在一些实施例中,服务器设备200可以是集成服务器系统116的一部分。在一些实施例中,服务器设备200可以采用集成服务器系统116使用的专门编程的服务器或计算系统的形式来执行集成服务器系统116的完整功能。在一些实施例中,基于执行与公开的实施例一致的一个或多个操作的软件指令的存储、执行和/或实现,服务器设备200可以被配置为装置、嵌入式系统、专用电路等。

存储器202可以包括一个或多个存储设备,其被配置为存储由处理器208使用以执行与所公开的实施例有关的功能的指令。例如,存储器202可以配置有一个或多个软件指令,例如当由处理器208执行时可以执行一个或多个操作的程序204。所公开的实施例不限于配置为执行专门任务的单独的程序或计算机。例如,存储器202可以包括执行服务器设备200的功能的单个程序204,或者程序204可以包括多个程序。在某些实施例中,存储器202可以存储用于执行集成服务器系统116的功能的指令或程序集。这些指令集可以由处理器208执行以执行与公开的实施例一致的通信和/或过程。

在某些实施例中,当服务器设备200构成集成服务器系统116的一个或多个组件时,存储器202包括域服务模块210、实体变更监听器模块212、交易监听器模块214、缓存事件发布器模块216、搜索事件发布器模块218、搜索索引数据库220,实体变更存储222和缓存数据库224,下文将详细描述。

在其他实施例中,域服务模块210、实体变更监听器模块212、交易监听器模块214、缓存事件发布器模块216、搜索事件发布器模块218、搜索索引数据库220、实体变更存储222和缓存数据库224中的每一个可以被实现为单独的和各自的服务器,服务器彼此通信,以及通过通信网络114与远程数据库120和客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)通信。在另一个示例中,搜索索引数据库220、实体变更存储和缓存数据库可以托管在远程数据库120上。

输入/输出(I/O)206可以包括各种输入/输出设备,例如键盘、鼠标型设备、手势传感器、动作传感器、物理按键、开关、麦克风、触摸屏面板、触控笔等,这些输入/输出设备可以由客户设备102(1)-102(n)、商品递送供应商设备106(1)和/或商品服务供应商设备110(1)-110(n)操作。I/O设备206还可以包括音频输出设备。I/O设备206的示例性通信模块可以包括例如短距离或近场无线通信调制解调器、Wi-FiTM通信调制解调器或蜂窝通信调制解调器。I/O设备206可以包括收发器或发射机,其被配置为使用一种或多种无线技术/协议进行通信,该无线技术/协议可以包括但不限于蜂窝(例如3G、4G等)技术、Wi-FiTM热点技术、RFID、近场通信(NFC)或技术等。更一般而言,可以在服务器设备200中实现本领域普通技术人员已知的任何单向或双向通信技术,以通过通信网络114与集成服务器系统116、客户设备102(1)-102(n)、商品递送供应商设备106(1)、商品服务供应商设备110(1)-110(n)或远程数据库120交换信息。

处理器208可以包括一个或多个已知的处理设备,例如,来自IntelTM制造的PentiumTM或XeonTM系列的微处理器,或AMDTM制造的TurionTM系列的微处理器。公开的实施例不限于配置为满足系统100的不同组件所需的计算需求的任何类型的处理器。

图3示出了与所公开实施例一致的用户设备300的示例性配置。图3的用户设备300代表客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)和商品服务供应商设备110(1)-110(n)中的每一个的示例性配置。

例如,用户设备300可以使分别与客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)和商品服务供应商设备110(1)-110(n)关联的相关客户、驾驶员和商家与集成服务器系统116执行远程交互或移动交易,或从集成服务器系统116接收信息。在一些实施例中,用户设备300可以是个人计算设备。例如,用户设备300可以是智能电话、膝上型计算机或笔记本计算机、平板电脑、多功能手表、一副多功能眼镜或具有计算能力的任何移动或可穿戴设备,或者这些计算机和/或附属组件的任何组合。

用户设备300包括一个或多个处理器308,其被配置为执行存储在诸如存储器312之类的存储器中的软件指令。存储器312可以存储一个或多个软件程序314,软件程序314当由处理器308执行时,执行已知的与互联网相关通信、内容显示过程以及其他针对客户、驾驶员和/或商家的交互过程。例如,用户设备300可以执行浏览器或相关移动显示软件,该浏览器或相关移动显示软件在包括在用户设备300中或与用户设备300通信的显示设备302上生成并显示包括内容的界面。用户设备300可以是执行移动设备应用程序和/或移动设备通信软件的移动设备。移动设备应用程序和/或移动设备通信软件包括在程序314中,其允许用户设备300通过通信网络114与集成服务器系统116和其他组件进行通信,以通过显示设备302在界面中生成和显示内容。公开的实施例不限于用户设备300的任何特定配置。用户设备300可以包括配置成执行与公开的实施例一致的一个或多个操作的一个或多个计算设备的任何布置。

用户设备300可以被配置为将一个或多个操作系统存储在存储器312中。在由处理器308执行时,一个或多个操作系统执行已知的操作系统功能。作为示例,操作系统可以包括MicrosoftWindowsTM、UnixTM、LinuxTM、AndroidTM、AppleTM、MacOS操作系统、iOS、ChromeOS或其他类型的操作系统。因此,所公开的实施例可以与运行任何类型的操作系统的计算机系统一起操作并起作用。用户设备300还可以包括存储在存储器312中的通信软件,该通信软件在由处理器308执行时,提供与通信网络114的通信,例如Web浏览器软件、平板电脑或智能手持设备网络软件等。

显示设备302可以包括例如液晶显示器(LCD)、发光二极管屏幕(LED)、有机发光二极管屏幕(OLED)、触摸屏和其他已知的显示设备。显示设备302可以向客户、驾驶员和商家显示各种信息。例如,显示设备302可以显示交互界面,使得客户、驾驶员和商家能够操作用户设备300以执行所公开的方法的某些方面。显示设备302可以显示可触摸或可选择的选项,以供客户、驾驶员和商家选择,并且可以通过触摸屏接收客户对选项的选择。

用户设备300包括允许发送和接收信息或与客户、驾驶员和商家或另一设备交互的I/O设备304。例如,I/O设备304可以包括各种输入/输出设备,诸如键盘、鼠标型设备、手势传感器、动作传感器、物理按键、开关、麦克风、触摸屏面板、触控笔等,这些输入/输出设备可以由客户、驾驶员和商家操作,从而通过用户设备300输入信息。I/O设备304还可以包括音频输出设备,例如扬声器,其被配置为向操作用户设备300的客户、驾驶员和商家提供声音和音频反馈。在一些实施例中,I/O设备304可以包括发光组件,例如LED或其他能够向客户、驾驶员和商家提供视觉信号的组件。I/O设备304还可以包括触觉输出设备,以向客户、驾驶员和商家提供触觉反馈。I/O设备304还可包括一个或多个通信模块(未示出),用于例如通过在用户设备300与通信网络114之间建立有线或无线连接来从系统100中的其他组件发送和接收信息。I/O设备304可以包括用于与与通信网络114相关联的其他设备进行通信的射频,红外或其他近场通信接口。I/O设备304的示例性通信模块可以包括例如短距离或近场无线通信调制解调器、Wi-FiTM通信调制解调器或蜂窝通信调制解调器。I/O设备304可以包括被配置为使用一种或多种无线技术/协议进行通信的收发器或发射机,该无线技术/协议可以包括但不限于蜂窝(例如3G、4G等)技术,Wi-FiTM热点技术、RFID、近场通信(NFC)或技术等。更一般地,本领域普通技术人员已知的任何单向或双向通信技术都可以在用户设备300中实现,以通过通信网络114与集成服务器系统116或远程数据库120交换信息。

如上所述,用户设备300可以是执行移动应用程序的设备,移动应用程序用于执行与公开的实施例一致的操作。因此,在一些实施例中,存储在用户设备300上的程序314可以包括安装在其上的一个或多个软件应用程序316,其使得用户设备300能够通过通信网络114与集成服务器系统116通信并执行所公开的方法的方面。例如,用户设备300可以通过使用浏览器软件来连接到集成服务器系统116,以访问和接收信息或执行与互联网服务供应商相关联的其他操作。

根据示例性实施例,可以将与集成服务器系统116相关联的软件应用程序316安装在用户设备300上,如图3所示。例如,集成服务器系统116可以从客户设备102(1)接收请求,以将一个或多个软件应用程序316下载到用户客户设备102(1)。在一个实施例中,集成服务器系统116可以使用分别安装在客户设备102(1)上的web浏览器应用程序接收来自与客户设备102(1)关联的客户的请求。在另一实施例中,集成服务器系统116可以从与集成服务器系统116相关联的网页或另一门户接收该请求,以将与集成服务器系统116相关联的一个或多个软件应用程序316下载到客户设备102(1)上,集成服务器系统116可以例如通过客户设备102(1)进行访问。在该实施例中,集成服务器系统116可以将与一个或多个软件应用程序316相对应的软件指令存储在远程数据库120中。为了响应下载请求,集成服务器系统116可以从客户设备102(1)接收关于客户设备102(1)特定设备规范的附加信息,以使客户设备102(1)能够下载与该特定规范相对应的软件指令。可替代地,集成服务器系统116可以将下载请求链接推送到客户设备102(1),或者通过例如电子邮件、文字或短消息服务(SMS)消息、通过一个应用程序的提示或其他合适的方法将与一个或多个软件应用程序316相对应的软件代码直接传送到客户设备102(1)。客户设备102(1)可以例如通过通信网络114接收与一个或多个软件应用程序316有关的软件代码,以下载和安装软件代码。类似地,在另一示例中,集成服务器系统116可以从与商品递送供应商设备106(1)相关联的派生(deriver)接收请求,以将一个或多个软件应用程序316下载到商品递送供应商设备106(1)上。此外,类似地,在另一示例中,集成服务器系统116可以从与商品服务供应商设备110(1)相关联的商家接收请求,以将一个或多个软件应用程序316下载到商品服务供应商设备110(1)上。

图。图4A和4B包含与所公开的实施例一致的、由集成服务器系统116实现的用于实时接收和传播高效搜索更新的示例性过程400的流程图。集成服务器系统116被实现为图2中的服务器设备200以执行软件指令,软件指令执行过程400中的一个或多个操作。下面结合图5来说明过程400的操作。

图5包含示出了图4A和图4B的示例性过程的流程图500。图5示出了该示例中服务器设备200的域服务模块210、实体变更监听器模块212、实体变更存储222、交易监听器模块214被实现为事件处理系统502。此外,该示例中服务器设备200的高速缓存数据库224、高速缓存事件发布器模块216、搜索事件发布器模块218和搜索索引数据库220被实现为数据库系统504。在一些实施例中,事件处理系统502和数据库系统504是集成服务器系统116的一部分。

根据过程400,在步骤402中,集成服务器系统116的域服务模块210监视远程数据库120,以确定客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)对条目的修改。举例来说,参照图5,域服务模块210监视远程数据库120(未示出)以确定存储在远程数据库120中作为数据条目的的商家档案信息、客户档案信息和驾驶员档案信息是否被客户设备102(1)-102(n)、商品递送供应商设备106(1)和/或商品服务供应商设备110(1)-110(n)修改。域服务模块210可以配置为侦测远程数据库120中的修改。域服务模块210侦测远程数据库120中的任何写入。

举例来说,与在商铺112(1)的商品服务供应商设备110(1)关联的商家通过在线网站门户访问其商家档案信息。商品服务供应商设备110(1)通过其上的显示器来查看商家档案信息。此外,远程数据库120可以以分层结构存储数据,例如商家档案信息。例如,商铺112(1)的名称可以是父实体,而营业时间、菜单名称、相册、地址位置等是存储在父实体下的子实体。此外,菜单信息包括多个类别,包括开胃菜、沙拉、墨西哥菜、主菜、甜点等,这些条目将被归类为菜单名称子实体下的子子实体。例如,对于商铺112(1),商家档案信息可以包括上午8:00至下午5:00的商店营业时间。商品服务供应商设备110(1)的商家将上午8:00至下午5:00的营业时间修改为上午9:00至下午6:00的新时间。该修改导致针对商铺112(n)的在远程数据库120中的商店营业时间条目的更新。域服务模块210基于监视远程数据库120来确定在远程数据库120上的商店营业时间条目的更新。类似地,可以由多个商家、客户和/或驾驶员中的每一个对对应的商家档案信息、客户档案信息和/或驾驶员档案信息进行多个修改,以导致生成多个实体变更请求。

通过提供分层结构,该技术提供了减少数据开销(overhead)的优化过程的技术优势。通过提供分层结构,该技术识别进行修改的具体位置,并因此生成实体变更请求,该实体变更请求包括旨在更新搜索索引数据库220中仅与被修改的父实体、子实体和/或子子实体相关联的信息,而非是在子子实体变更时,生成更新整个菜单信息的实体变更请求,这需要额外的数据开销。

在步骤404中,集成服务器系统116的实体变更监听器模块212在修改远程数据库120中的条目时接收第一实体变更请求。在步骤402中确定条目的修改后,域服务模块210发送第一实体变更请求。第一实体变更请求包括与已经被修改的实体相对应的信息。举例来说,当修改与菜单的开胃菜类别内的商品相关的价格时,则第一实体变更请求将包括与开胃菜类别的子子实体相关联的实体标识符和修改信息,在该示例中,修改信息是与“开胃菜”类别中的商品相关联的价格。此外,实体标识符可以是存储在搜索索引数据库220中的查找表内的地址,如图5中步骤502所示。

在另一个示例中,当商家为商铺112(1)修改营业时间信息时,域服务模块210监视远程数据库120(如步骤402中所述),并且在确定数据条目的修改后,域服务模块210发送第一实体变更请求。第一实体变更请求包括与商店营业时间的子实体相关联的标识符以及修改信息,在该示例中,该修改信息是从上午8:00到下午5:00到从上午9:00到下午6:00的新时刻的营业时间变化。类似地,在交易监听器模块214从实体变更存储222接收推送的数据的时间段上,分别在相应的商家档案信息、客户档案信息和/或驾驶员档案信息中的多个商家、客户和/或驾驶员。客户设备102(1)-102(n)、商品递送供应商设备106(1)-106(n)、商品服务供应商设备110(1)-110(n)和远程数据库120可以被称为外部系统。

在步骤406中,集成服务器系统116的实体变更监听器模块212将对条目所做的修改存储在实体变更存储222中。存储也称为将对条目所做的修改保存在实体变更存储222中。当接收到第一实体变更请求时,集成服务器系统116存储与已经被修改的条目相关联的标识符以及包括在第一实体变更请求中的修改信息。举例来说,当第一实体变更请求将要修改的条目识别为菜单的开胃菜类别内的商品价格时,则集成服务器系统116存储与开胃菜类别的子子实体相关联的实体标识符。以及在该示例中是与实体变更存储222中的“开胃菜”类别中的商品相关联的价格的修改信息。类似地,与已修改条目相关联的标识符和实体变更请求中的更改信息是基于多个由多个商家、客户和/或驾驶员在其相应的商家档案信息、客户档案信息和/或驾驶员档案信息中执行的修改也存储在实体变更存储222中,如图5中步骤504所示。

在步骤408中,集成服务器系统116的域服务模块210在交易监听器模块214发送提交事件请求以启动交易监听模式。在步骤402中发送第一实体变更请求时,域服务模块210生成提交事件请求。这在图5的步骤506中描述。

在步骤410中,集成服务器系统116的实体变更存储222将在步骤406中存储的数据推送到交易监听器模块214。集成服务器系统116的交易监听器模块214在从域服务模块210接收到提交事件请求后启动交易监听模式。在交易监听模式启动后,交易监听器模块214等待监听将从实体变更存储222接收的数据。实体变更存储222将在步骤406中存储的数据推送到交易监听器模块214。交易监听器模块214从接收的数据中识别实体标识符和相应的修改信息。来自实体变更存储222的数据推送是实时执行的。在一些实施例中,一旦将数据存储在实体变更存储222中,就立即将数据推送到交易监听器模块214。与被更改的条目相关联的多个标识符以及相应的与那些条目相关联的修改被实体变更存储222推送。类似地,推送到交易监听器模块214并存储在实体变更存储222中的数据可以包括在交易监听器模块214从实体变更存储222接收数据的时间段上,由多个商家、客户和/或驾驶员分别对相应的商家档案信息、客户档案信息和/或驾驶员档案信息中进行的多个修改,如图5中的步骤508所示。

在另一示例中,以规则的时间段间隔执行从实体变更存储222推送数据。该时间段可以包括1微秒、1秒、5秒、5分钟、1小时和/或24小时,但是也可以包括任何其他的时间段。从实体变更存储222推送的数据包括与在时间段期间被改变的条目相关联的多个标识符以及与那些条目相关联的对应修改。

在另一示例中,交易监听器模块214在实体变更存储222中获取在步骤406中存储的数据。所获取的数据可以包括与已经被修改的条目相关联的标识符以及包括在第一实体变更请求中的修改信息。例如,实体标识符与开胃菜类别中的子子实体相关联,修改信息该示例中是与实体变更存储222中的开胃菜类别内的商品相关联的价格。

交易监听器模块214在从实体变更存储222接收到实体标识符后,通过将实体变更存储222在步骤406中存储的数据推送到交易监听器模块214来识别与实体标识符相关联的事件类型,或者通过交易监听器模块214获取在步骤406中存储在实体变更存储222中的数据来识别与实体标识符相关联的事件类型。识别的事件类型包括分层结构中与实体标识符相关联的位置。举例来说,事件类型可以包括仅与已经被修改的那个父实体、子实体和/或子子实体相关联的位置。

在步骤412中,集成服务器系统116的交易监听器模块214响应于接收到存储在实体变更存储222中的数据来识别触发事件。触发事件是用于生成从实体变更存储222所接收数据的多个简要说明的事件。交易监听器模块214响应于接收存储在实体变更存储222中的数据来识别触发事件的启动。触发事件的启动使交易监听器模块214生成在步骤410中从实体变更存储222所接收数据的多个简要说明。识别到触发事件后,集成服务器系统116的交易监听器模块214生成由实体变更存储222推送的数据的简要说明。举例来说,简要说明是在步骤410中交易监听器模块214从实体变更存储222接收的数据的副本。在另一个示例中,简要说明将是数据库表,包括存储在实体变更存储222中的数据的参考指示符。如图5步骤510所示,经由514路径和516路径发送两个简要说明。这些简要说明具有正在传送的相同数据内容。

在步骤414中,集成服务器系统116的交易监听器模块214发送清除实体变更存储222的请求。在接收到实体变更存储222推送的数据时,交易监听器模块214发送清除实体变更存储222已推送的数据的请求。在接收到清除数据的请求时,实体变更存储222删除已经推送的数据。这在图5的步骤512中描述。

在步骤416中,集成服务器系统116的交易监听器模块214将简要说明中的一个以及在步骤410中识别的相应事件类型传送到缓存事件发布器模块216。然后,缓存事件发布器模块216将简要说明数据存储在缓存数据库224中。当接收到来自搜索索引数据库220的访问修改后的商家档案信息、客户档案信息和/或驾驶员档案信息的请求时,并且如果搜索索引数据库220超载并且无法立即提供数据时,在这种情况下,存储在缓存数据库224中的简要说明被用来促进该请求。该请求由存储在缓存数据库224中的简要说明数据提供服务。如图5的步骤514所示,将简要说明中的第一个发送到缓存事件发布器模块216。

在步骤418中,集成服务器系统116的交易监听器模块214将简要说明传送到搜索事件发布器模块218。搜索事件发布器模块218存储简要说明。如图5的步骤516所示,简要说明中的第二个以及在步骤410中识别的相应事件类型被传送到搜索事件发布器模块218。

前进至图4B,在步骤420中,集成服务器系统116的搜索事件发布器模块218利用与简要说明一同接收的事件类型来确定与被修改实体相关联的位置。基于所确定的位置,搜索事件发布器模块218将简要说明中的数据条目归类到多个数据管道类别中的一个。搜索事件发布器模块218是流服务,其基于类别的类型将简要说明中的数据条目归类为多个流,并将其连同流转发到数据管道类别。管道类别包括与商铺112(1)-112(n)中一个相关联的父实体。举例来说,管道类别526可以与商铺112(1)相关联,管道类别528可以与商铺112(n)相关联。基于事件类型中识别的位置的类型,搜索事件发布器模块218确定数据管道526-530中的一个对应作为事件类型中识别的位置,并将数据条目发送到对应的数据管道526-530中的一个。

在另一个实施例中,管道类别包括父实体、子实体、子子实体,但是也可以包括任何其他类别。举例来说,图5中的数据管道526、528和530可以是父实体数据管道526、子实体数据管道528和子子实体数据管道530(图5中未示出)。搜索事件发布器模块218将在步骤420中被归类为父实体的数据条目作为第一流发送给父实体数据管道526,另外搜索事件发布器模块218可以为被归类为子实体的数据条目发送子实体数据管道528的第二流,以用于被归类为子实体的数据条目,以及搜索事件发布器模块218可以发送子子实体数据管道530的第三流,以用于被归类为子子实体的数据条目。商家资料信息以分层结构整理。例如,商铺112(1)的名称可以是父实体,而营业时间、菜单名称、相册、地址位置等是子实体,存储在父实体下作为子实体。在该示例中,商铺112(1)的名称是父实体。营业时间、菜单名称、相册、地址位置等可以是存储在父实体下的子实体。此外,菜单信息可以包括多个类别,其包括开胃菜、沙拉、墨西哥菜、主菜、甜点等。这些条目可以被归类为在菜单名称子实体下的子子实体。在另一个示例中,管道类别包括开胃菜、沙拉、墨西哥菜、主菜和甜点。

在步骤422中,集成服务器系统116的搜索事件发布器模块218识别在分层结构中的哪个位置进行了特定修改,并根据修改位置将数据条目归类为父实体、子实体或子子实体。在识别出与数据条目相关联的类别之后,搜索事件发布器模块218发送对应的数据管道中的每个数据条目。基于在步骤420中执行的归类,数据条目被归类到该对应的数据管道中。作为一个示例,在步骤420中,搜索事件发布器模块218基于事件类型识别位置类型,搜索事件发布器模块218确定数据管道526-530中的一个对应作为在事件类型中识别的位置,并将数据条目发送到事件类型中的相应一个。数据管道526-530。当搜索事件发布器模块218基于与数据管道526中的位置相对应的事件类型来识别与数据条目相关联的位置时,搜索事件发布器模块218将数据条目发送到数据管道526。作为另一个示例,在步骤420中,搜索事件发布器模块218可以识别出接收的实体变更包括将从上午8:00到下午5:00的营业时间修改为从上午9:00到下午6:00的新时间。作为响应,搜索事件发布器模块218识别出商店营业时间的数据条目是子条目数据,并相应地将商店营业时间的标识符以及与商店营业时间相关联的修改信息发送到子实体数据管道528。在该示例中,修改信息是将从上午8:00到下午5:00修改为从上午9:00到下午6:00的新时刻。类似地,搜索事件发布器模块218会将被归类到父实体的数据条目通过520发送到父实体数据管道526,将被归类到子子实体的数据条目通过524发送到子子实体数据管道530。

在步骤424中,集成服务器系统116的搜索索引数据库220通过流532从父实体数据管道526,子实体数据管道528和/或子子实体数据管道530接收归类数据。搜索索引数据库220从父实体数据管道526接收数据,并更新与父实体相关联的数据条目。类似地,搜索索引数据库220从子实体数据管道528接收数据,并更新与子实体相关联的数据条目。类似地,搜索索引数据库220从子子实体数据管道530接收数据,并更新与子子实体相关联的数据条目。

在步骤426中,集成服务器系统116的搜索索引数据库220接收用户搜索请求,以从商家档案信息、客户档案信息和/或驾驶员档案信息中访问数据条目。在接收到用户搜索请求之后,搜索索引数据库220提供响应以包括和修改后数据条目关联的搜索结果,该修改后的数据条目与在步骤424中被更新,与用户搜索请求中包括的数据条目相对应。

图6示出了图5的替代实施例,该实施例包含示出了图4A和图4B的示例性过程的流程图。图6示出了在该示例中的服务器设备200的域服务模块210、实体变更监听器模块212、实体变更存储222、交易监听器模块214和搜索发布器模块218。在该示例实施例中,这些模块被实现为事件处理系统602。此外,事件使用者模块226、事件处理模块227、生成事件实体228、事件发布器模块229、商家应用程序编程接口(API)230、缓存数据库224、缓存事件发布器模块216、搜索事件发布器模块218、以及搜索索引数据库220被实现为数据库系统604。在一些实施例中,事件处理系统602和数据库系统604是集成服务器系统116的一部分。

根据过程400(图4A和4B)和图5,步骤602基本类似于步骤502。步骤604基本类似于步骤604。步骤606基本类似于步骤506。步骤608基本类似于步骤508。

在一些实施例中,步骤610与步骤510基本相似。在其他实施例中,集成服务器系统116的交易监听器模块214响应于接收存储在实体变更存储222中的数据而识别出触发事件。触发事件是用于将从实体变更存储222接收的数据传送到搜索事件发布器模块218的事件。交易监听器模块214响应于接收存储在实体变更存储222中的数据来识别触发事件的启动。触发事件的启动导致集成服务器系统116的交易监听器模块214将接收的数据传送到搜索事件发布器模块218,这在步骤610中示出。在步骤612中,集成服务器系统116的交易监听器模块214发送请求以清除实体更改存储222。在接收到实体变更存储222推送的数据时,交易监听器模块214发送请求以清除由实体变更存储222推送的数据。在接收到清除数据的请求后,实体变更存储222删除已推送的数据。

搜索事件发布器模块218存储从流610接收的数据,然后继续确定接收的数据是否包括已被修改的数据,如步骤614所示。此处,搜索事件发布器模块218将接收的数据与先前存储在搜索事件发布器模块218上的对应数据对比以确定数据是否已被修改。当搜索事件发布器模块218确定接收的数据不包括已经被修改的数据时,则该方法前进到流程616,并且该方法在此结束。然而,当搜索事件发布器模块218确定接收的数据包括已被修改的数据时,则如流程618所示,已被修改的数据被发送到事件使用者模块226。事件使用者模块226继续基于流620描述的接收数据来确定是否存在匹配的事件类型。事件使用者模块226确定接收的数据是否已经被识别为将被修改为与事件类型匹配。基于识别在已被识别为要修改的数据中进行了修改的位置,事件类型可以包括父实体、子实体或子子实体的修改。识别事件类型后,例如,将在子实体上进行的修改,则事件使用者模块226将已被标识为要修改的数据传送到事件处理模块227,如流程622所示。事件处理程序模块228然后更新商家应用程序编程接口(API)并获取更新的数据以反映所做的修改,如流624所示。在更新商家API230之后,事件处理模块227随后继续传送已被标识为要修改的数据,以生成事件实体模块228,如626所示。生成实体模块228然后生成已被识别为要修改的数据的多个简要说明。举例来说,简要说明是在步骤410中已被标识为要修改的数据的副本。在另一个示例中,简要说明是数据库表,该数据库表包括对存储在实体变更存储222中的数据的参考指示符。多个简要说明是指已标识为要修改的同一数据的多个副本。然后,生成实体模块228将已被识别为要修改的同一数据的多个副本发送到事件发布器模块229。事件发布器模块229通过流程630将简要说明中的一个发送到缓存事件发布器模块216。缓存事件发布器模块216将简要说明数据存储在缓存数据库224中。事件发布器模块229还向搜索事件发布器模块218发送简要说明中的第二个。

集成服务器系统116的搜索事件发布器模块218识别层次结构中进行了特定修改的位置,并基于修改位置,将该数据条目归类为父实体(例如,商店信息)、子实体(商店的菜单信息)或子子实体(商店的开放时间、假期期间商店的开放信息、假期期间商店的不规则营业时间)。在该示例中,商店信息与数据管道636b相关联,商店的菜单信息与数据管道638b相关联,商店营业时间信息与数据管道640b相关联,假期期间商店开放信息与数据管道642b相关联,并且在假期期间不规则营业时间与数据管道644b相关联。在识别出与数据条目相关联的类别之后,搜索事件发布器模块218基于所执行的归类,传送与该类别相关联的对应数据管道中的每个数据条目。此外,搜索事件发布器模块218可以经由流636a将与商店的信息相对应的修改后的数据条目发送到数据管道636b。搜索事件发布器模块218可以经由流638a将与商店的菜单信息相对应的修改后的数据条目传送到数据管道638b。搜索事件发布器模块218可以经由流640a将与商店营业时间信息相对应的修改后的数据条目传送到数据管道640b。搜索事件发布器模块218可以经由流642a将与假期期间的商店开放信息相对应的修改后的数据条目传送到数据管道642b。搜索事件发布器模块218可以经由流644a将与假日期间的商店不规则营业时间相对应的修改后的数据条目传送到数据管道644b。此外,步骤646与步骤532基本相似。

所公开的实施例提供了一种接收和传播高效搜索更新的改进方法,通过提供减少数据开销的优化过程的技术优势以及提供搜索更新的实时过程。由于该技术通过推送存储在实体变更存储中的数据来提供实时搜索更新过程,因此该技术提供了一种快速可靠的过程,可以反映对数据库所做的修改,从而可以更快地将修改显示为搜索结果的一部分。因此,该技术减少了在更新数据条目期间引起的延迟。此外,该技术识别进行修改的特定位置,并因此生成实体变更请求,该实体变更请求包括旨在更新搜索索引数据库信息,该搜索索引数据库信息仅与被修改的父实体、子实体和/或子子实体相关联。因此,该技术减少了数据开销,而不是生成实体变更请求以在子子实体发生更改时更新整个菜单信息,这需要额外的数据开销。

相反,在现有技术中,已经实施的其他策略效率低下,因为它们需要额外的数据开销,这可能对高效利用网络资源而言是不利的,并因此增加网络负担。此外,现有技术在搜索更新过程期间引起显著的延迟,而所公开的实施例提供了实时更新过程,其减少了反映对数据条目进行的修改的延迟。

虽然本文已经描述了说明性实施例,但是其范围包括具有等同要素、修改、省略、组合(例如,各个实施例的各个方面)、改编和/或变更的任何和所有实施例,这些是本领域技术人员基于本公开所能理解的。例如,可以修改示例性系统中所示的组件的数量和方向。因此,仅出于说明的目的给出了前面的描述。它不是穷举性的,并且不限于所公开的精确形式或实施例。通过考虑所公开实施例的说明书和实践,修改和调整对于本领域技术人员将是显而易见的。

权利要求中的要素将基于权利要求中使用的语言来广义地解释,并且不限于在本说明书中或在本申请进行期间描述的示例,这些示例应被解释为非排他性的。因此,本说明书和实施例仅被认为是示例性的,真实的范围和精神由所附权利要求及其等同的全部范围表示。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置,信息处理方法及信息处理程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!