System and method for real-time reception and propagation of efficient search updates

By integrating a server system to monitor and process entity change requests in real time, the problem of delayed updates to user profile information was solved, achieving efficient information reflection.

CN113557501BActive Publication Date: 2026-03-17COUPANG CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-10
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

In existing technologies, there is a significant delay in the reflection of user profile information modified on the online website portal on the food ordering website, resulting in unreal-time updates and low efficiency.

Method used

The system receives and propagates efficient search updates through an integrated server system, including memory and processors, monitors and stores entity change requests in real time, pushes them to event publishers and streaming services, and categorizes and updates the search index database.

Benefits of technology

It enables real-time updates of user profile information, reduces data processing delays, and improves the efficiency of information feedback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113557501B_ABST
    Figure CN113557501B_ABST
Patent Text Reader

Abstract

A system for receiving and propagating efficient search updates includes one or more processors configured to receive, over a network, a first entity change request from a first external system 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 an event publisher for forwarding to a stream service. The first entity change request is categorized and forwarded from the stream service to a search index database. The search index is in turn updated based on the categorized entity change request.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure relate to systems and methods for receiving and propagating efficient search updates in real time. More specifically, embodiments of this disclosure relate to enabling users to order goods online and have goods delivered by receiving and propagating efficient search updates to user devices in real time. Background Technology

[0002] Users (e.g., online customers, online merchants, delivery personnel) frequently use online portals or mobile applications to order goods (e.g., food, groceries). For instance, users maintain profiles on online websites that include their information (e.g., location, menu, name). When a user modifies this profile information, there is a significant time delay or lag between the modification being made and the change being reflected on the online portal. This delay in reflecting the modification causes inconvenience to users.

[0003] For example, when a restaurant updates its online menu (e.g., dish names, prices, restaurant hours, etc.) through an online portal used for food ordering, the changes to the online menu will not be reflected on the food ordering website for a considerable period of time. Current solutions for these update processes are not real-time because these update requests are processed in batches. The web server processes requests at regular intervals so that requests received during those intervals are processed together as a batch at the end of the interval. This batch processing of updates by the web server results in a significant delay in reflecting the updates to the user. Therefore, the current solution is inefficient and introduces delays, thus creating a need for real-time updates. Summary of the Invention

[0004] According to embodiments of this disclosure, a system for receiving and disseminating efficient search updates is provided. The system includes: a memory storing instructions; and at least one processor configured to execute the instructions to: receive a first entity change request from a first external system via a network to modify data in an entity associated with the first external system; save the received first entity change request to entity storage; push the received entity change request from the entity storage to an event publisher for forwarding to a streaming service; classify the first entity change request; forward the classified entity change request from the streaming service to a search index database; and update the search index based on the classified entity change request.

[0005] According to embodiments of this disclosure, a computer-implemented method for receiving and disseminating efficient search updates is also provided. The method includes: receiving a first entity change request from a first external system via a network to modify data in an entity associated with the first external system; saving the received first entity change request to entity storage; pushing the received entity change request from entity storage to an event publisher for forwarding to a streaming service; categorizing the first entity change request; forwarding the categorized entity change request from the streaming service to a search index database; and updating the search index based on the categorized entity change request.

[0006] According to embodiments of this disclosure, a system for receiving and propagating efficient search updates is provided. The system includes: a memory storing instructions; and at least one processor configured to execute the instructions to: receive a first entity change request from a first external system via a network to modify data in an entity associated with the first external system; save the received first entity change request to an event store; push the received entity change request from the event store to an event publisher for forwarding to a streaming service; push the received entity change request from the event store to a second event publisher for storage in a cache database, wherein pushing the received event change request from the event store to the event publisher and the second event publisher includes formalizing the received entity change request into a brief description; clearing the event store of all entity change requests in response to pushing the received entity change request from the event store; classifying the first entity change request; forwarding the classified entity change request from the streaming service to a search index database; and updating the search index based on the classified entity change request. Attached Figure Description

[0007] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate the disclosed embodiments and, together with the specification, serve to explain the disclosed embodiments. In the figures:

[0008] Figure 1 This is a block diagram of an exemplary system consistent with the disclosed embodiments;

[0009] Figure 2 This is a block diagram of an exemplary server system consistent with the disclosed embodiments;

[0010] Figure 3 This is a block diagram of an exemplary user equipment consistent with the disclosed embodiments;

[0011] Figure 4A and Figure 4B A detailed flowchart is provided, which includes an exemplary process for receiving and propagating efficient search updates in real time, consistent with the disclosed embodiments.

[0012] Figure 5 Includes embodiments shown that are consistent with the disclosed embodiments. Figure 4A and Figure 4B A flowchart of an exemplary process.

[0013] Figure 6 Includes embodiments consistent with those shown in the disclosure. Figure 5 A flowchart of an alternative embodiment, Figure 5 It shows Figure 4A and Figure 4B An exemplary process. Detailed Implementation

[0014] Reference will now be made in detail to the disclosed embodiments, examples of which are shown in the accompanying drawings. Where it is convenient, the same reference numerals will be used throughout the drawings to refer to the same or similar parts.

[0015] While the following description is geared towards the efficient reception and propagation of search updates in real time, these embodiments are merely exemplary. It should be understood that this disclosure is not limited to the specific embodiments and details disclosed only as examples. It should also be understood that, based on known systems and methods, those skilled in the art will recognize that embodiments of this disclosure can be used in any number of alternative embodiments for their desired purposes and benefits, depending on specific design and other requirements.

[0016] Figure 1 This is a block diagram of an exemplary system 100 for performing one or more operations consistent with the disclosed embodiments. In some embodiments, system 100 includes one or more customer devices 102(1), ..., 102(n) respectively located at respective customer locations 104(1), ..., 104(n), one or more goods delivery supplier devices 106(1), ..., 106(n) respectively located in respective delivery vehicles 108(1), ..., 108(n), and one or more goods service supplier devices 110(1), ..., 110(n) respectively located at respective shops 112(1), ..., 112(n). Furthermore, system 100 includes an integrated server system 116, a remote database 120, and a communication network 114. System 100 may also include multiple integrated server systems 116 (not shown) and multiple remote databases 120 (not shown), which communicate directly with each other and further communicate with customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n) via communication network 114. The components included in system 100 and the arrangement of the components may vary. Therefore, system 100 may include other components that perform or assist in performing one or more operations consistent with the disclosed embodiments.

[0017] As described more fully below, customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), goods service supplier devices 110(1)-110(n), integrated server system 116, and remote database 120 may include one or more computing devices (e.g., computers, servers, etc.), memory (e.g., databases, storage devices, etc.) for storing data and / or software instructions, and other known computing components. In some embodiments, one or more computing devices may be configured to execute software instructions stored in memory to perform one or more operations consistent with the disclosed embodiments. Aspects of customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), goods service supplier devices 110(1)-110(n), integrated server system 116, and remote database 120 may, for example, be configured to communicate with one or more other components of system 100 via communication network 114. In some respects, customers associated with customer locations 104(1)-104(n) are associated with and operate customer devices 102(1)-102(n), drivers associated with delivery vehicles 108(1)-108(n) are associated with and operate goods delivery supplier devices 106(1)-106(n), and merchants associated with shops 112(1)-112(n) are associated with and operate goods service supplier devices 110(1)-110(n) to interact with one or more components of system 100 by sending and receiving communications, initiating operations, and / or providing input for one or more operations, consistent with the disclosed embodiments.

[0018] The integrated server system 116 may be associated with an online ordering entity that receives, processes, manages, or otherwise provides goods ordering services. For example, goods that can be ordered through the online ordering entity may include prepared food, groceries, furniture, books, computers, and / or clothing, but any other type of goods may also be ordered. For instance, the integrated server system 116 may receive order requests from customers using client devices 102(1)-102(n) and process the received order requests by sending them to goods service provider devices 110(1)-110(n), which are associated with shops 112(1)-112(n) that will provide the ordered goods. The integrated server system 116 receives order confirmation communications from the goods service provider devices 110(1)-110(n). When an order confirmation is received from the goods service provider equipment 110(1)-110(n), the integrated server system 116 sends a request to the goods delivery provider equipment 106(1)-106(n) to collect the order from the merchant 112(1)-112(n) and deliver the order to the customer location 104(1)-104(n). The goods delivery provider equipment 106(1)-106(n) accepts the request, collects the requested goods, and delivers them to the customer location 104(1)-104(n).

[0019] The remote database 120 of system 100 can be directly or via communication network 114 to connect to the integrated service system 116. Furthermore, the remote database 120 of system 100 can be connected via communication network 114 to client devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n). The remote database 120 may include one or more storage devices for storing information, which are accessed or managed by one or more components of system 100. As an example, the remote database 120 may include an Oracle. TM Database, Sybase TM The remote database 120 may include computing components (e.g., a database management system, a database server, etc.) configured to receive and process requests for data stored in storage devices of the remote database 120, and to provide data from the remote database 120.

[0020] Remote database 120 is configured to store merchant profile information associated with goods service provider devices 110(1)-110(n) located at shops 112(1)-112(n), customer profile information associated with customer devices 102(1)-102(n) located at customer locations 104(1)-104(n), and driver profile information associated with goods delivery provider devices 106(1)-106(n). In some embodiments, remote database 120 stores data entries including, for example, merchant profile information, customer profile information, and driver profile information.

[0021] Shops 112(1)-112(n) may include restaurants, coffee shops, bookstores, clothing stores, but may also include any other type of store. Furthermore, the merchant profile information includes the shop name, shop menu, list of goods offered by the merchant, food pictures, shop pictures, product categories, food categories, merchant address, shop opening hours and / or merchant telephone number, but may also include any other type of information related to the merchant. Customer locations 104(1)-104(n) may include residential locations, office buildings, apartments, but may also include any other type of residence. Furthermore, the customer profile information in the remote database 120 may include the customer name, customer home address, customer picture and / or customer telephone number, but may also include any other type of information associated with the merchant. Delivery vehicles 108(1)-108(n) may include cars, bicycles, trucks, buses, but may also include any other type of delivery vehicle. Furthermore, the driver profile information includes the driver's name, driver's home address, driver's photo and / or driver's telephone number, the type and model of the vehicle driven by the driver, but may also include any other type of information associated with the driver.

[0022] In one aspect, the integrated server system 116 may include one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments, as described below. Figure 4A , Figure 4B as well as Figure 5More fully described. In one aspect, the integrated server system 116 may include one or more servers or server systems. The integrated server system 116 may include one or more processors configured to execute software instructions stored in memory or other storage devices. The one or more processors may be configured to execute the stored software instructions to perform Internet-related communications, online order processing, and real-time reception and dissemination of efficient search updates. One or more computing devices of the integrated server system 116 may be configured to modify and store customer profile information, merchant profile information, and / or driver profile information. One or more computing devices of the integrated server system 116 may also be configured to communicate with other components of the system 100 to receive and disseminate efficient search updates in real time. In some embodiments, the integrated server system 116 may provide one or more mobile applications, websites, or online portals that customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n) may access via communication network 114. The disclosed embodiments are not limited to any particular configuration of the integrated server system 116.

[0023] Communication network 114 may include any type of computer network arrangement configured to provide communication or exchange of data, or both, between components of system 100. For example, communication network 114 may include any type of network (including infrastructure) that provides communication, exchanges information, and / or facilitates information exchange, such as the Internet, private data networks, virtual private networks using public networks, LAN or WAN networks, Wi-Fi, etc. TM A network and / or other suitable connection that enables information exchange between the various components of system 100. The communication network 114 may also include a public switched telephone network (“PSTN”) and / or a wireless cellular network. The communication network 114 may be a secure network or an insecure network. In some embodiments, one or more components of system 100 may communicate directly via a dedicated communication link.

[0024] Customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n) may be one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments, as described below. Figure 2More fully described. Customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n) can execute a browser or related mobile display software to display an online portal on a monitor for ordering, receiving, and delivering ordered goods online. The monitor is included in or connected to customer devices 102(1)-102(n). Customer devices 102(1)-102(n) can also store and execute other mobile applications that allow customers, merchants, and / or drivers to interact with the online portal provided by integrated server system 116.

[0025] It should be understood that, for ease of description, the configuration of functional blocks of system 100 has been defined herein. The components included in system 100 and the arrangement of those components can vary. For example, in some embodiments, system 100 may include additional components that perform or assist in performing one or more processes consistent with the disclosed methods. System 100 includes multiple components generally described as computing devices. Each computing device may include any number of computing components specifically configured as dedicated computing devices to perform the functions disclosed herein. Based on the teachings contained herein, alternatives (including equivalents, extensions, variations, deviations, etc., of the solutions described herein) will be apparent to those skilled in the art. Such alternatives fall within the scope and spirit of the disclosed embodiments.

[0026] Figure 2 An exemplary server device 200 consistent with the disclosed embodiments is shown. Variations of the exemplary server device 200 may constitute one or more components of an integrated server system 116. In one embodiment, the server device 200 includes one or more memories 202, one or more I / O devices 206, and one or more processors 208 communicating via a bus 234. In some embodiments, the server device 200 may be part of the integrated server system 116. In some embodiments, the server device 200 may take the form of a specially programmed server or computing system used by the integrated server system 116 to perform the full functionality of the integrated server system 116. In some embodiments, the server device 200 may be configured as a device, an embedded system, a special-purpose circuit, etc., based on the storage, execution, and / or implementation of software instructions that perform one or more operations consistent with the disclosed embodiments.

[0027] Memory 202 may include one or more storage devices configured to store instructions used by processor 208 to perform functions related to the disclosed embodiments. For example, memory 202 may be configured with one or more software instructions, such as program 204, which, when executed by processor 208, can perform one or more operations. The disclosed embodiments are not limited to a single program or computer configured to perform a specific task. For example, memory 202 may include a single program 204 that performs the functions of server device 200, or program 204 may include multiple programs. In some embodiments, memory 202 may store instructions or sets of programs for performing the functions of integrated server system 116. These sets of instructions may be executed by processor 208 to perform communications and / or processes consistent with the disclosed embodiments.

[0028] In some embodiments, when server device 200 constitutes one or more components of integrated server system 116, memory 202 includes domain service module 210, entity change listener module 212, transaction listener module 214, cache event publisher module 216, search event publisher module 218, search index database 220, entity change storage 222, and cache database 224, which will be described in detail below.

[0029] In other embodiments, each of the domain service module 210, entity change listener module 212, transaction listener module 214, cache event publisher module 216, search event publisher module 218, search index database 220, entity change store 222, and cache database 224 can be implemented as a separate and independent server, which communicates with each other and with the remote database 120 and client devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n) via communication network 114. In another example, the search index database 220, entity change store, and cache database can be hosted on the remote database 120.

[0030] Input / output (I / O) 206 may include various input / output devices, such as keyboards, mouse-type devices, gesture sensors, motion sensors, physical buttons, switches, microphones, touchscreen panels, styluses, etc., which may be operated by client devices 102(1)-102(n), goods delivery supplier devices 106(1), and / or goods service supplier devices 110(1)-110(n). I / O device 206 may also include audio output devices. Exemplary communication modules of I / O device 206 may include, for example, short-range or near-field wireless communication modems, Wi-Fi... TMA communication modem or cellular communication modem. I / O device 206 may include a transceiver or transmitter configured to communicate using one or more wireless technologies / protocols, which may include, but are not limited to, cellular (e.g., 3G, 4G, etc.) technology, Wi-Fi, etc. TM Hot technologies, RFID, Near Field Communication (NFC) or Technologies, etc. More generally, any one-way or two-way communication technology known to those skilled in the art can be implemented in server device 200 to exchange information with integrated server system 116, client devices 102(1)-102(n), goods delivery supplier device 106(1), goods service supplier device 110(1)-110(n) or remote database 120 via communication network 114.

[0031] Processor 208 may include one or more known processing devices, such as those from Intel. TM Manufactured Pentium TM or Xeon TM series of microprocessors, or AMD TM Turion manufactured TM This is a series of microprocessors. The disclosed embodiments are not limited to any type of processor configured to meet the computing needs of the different components of system 100.

[0032] Figure 3 An exemplary configuration of user equipment 300 consistent with the disclosed embodiments is shown. Figure 3 User equipment 300 represents an exemplary configuration of each of customer equipment 102(1)-102(n), goods delivery supplier equipment 106(1)-106(n) and goods service supplier equipment 110(1)-110(n).

[0033] For example, user equipment 300 can enable relevant customers, drivers, and merchants associated with customer equipment 102(1)-102(n), goods delivery supplier equipment 106(1)-106(n), and goods service supplier equipment 110(1)-110(n) to perform remote interactions or mobile transactions with integrated server system 116, or receive information from integrated server system 116. In some embodiments, user equipment 300 can be a personal computing device. For example, user equipment 300 can be a smartphone, laptop or notebook computer, tablet computer, multifunction watch, multifunction glasses, or any mobile or wearable device with computing capabilities, or any combination of such computers and / or accessories.

[0034] User equipment 300 includes one or more processors 308 configured to execute software instructions stored in a memory such as memory 312. Memory 312 may store one or more software programs 314, which, when executed by processor 308, perform known Internet-related communications, content display processes, and other interactive processes for customers, drivers, and / or merchants. For example, user equipment 300 may execute a browser or related mobile display software that generates and displays an interface including content on a display device 302 included in or communicating with user equipment 300. User equipment 300 may be a mobile device executing mobile device applications and / or mobile device communication software. The mobile device applications and / or mobile device communication software are included in program 314, which allows user equipment 300 to communicate with integrated server system 116 and other components via communication network 114 to generate and display content in an interface via display device 302. The disclosed embodiments are not limited to any particular configuration of user equipment 300. User equipment 300 may include any arrangement of one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments.

[0035] User device 300 can be configured to store one or more operating systems in memory 312. When executed by processor 308, the one or more operating systems perform known operating system functions. As an example, the operating system may include Microsoft Windows. TM Unix TM Linux TM Android TM Apple TM The system can run macOS, iOS, ChromeOS, or other operating systems. Therefore, the disclosed embodiments can operate and function with computer systems running any type of operating system. User equipment 300 may also include communication software stored in memory 312, which, when executed by processor 308, provides communication with communication network 114, such as web browser software, tablet or smart handheld device network software, etc.

[0036] Display device 302 may include, for example, a liquid crystal display (LCD), a light-emitting diode screen (LED), an organic light-emitting diode screen (OLED), a touch screen, and other known display devices. Display device 302 can display various information to customers, drivers, and businesses. For example, display device 302 may display an interactive interface enabling customers, drivers, and businesses to operate user equipment 300 to perform certain aspects of the disclosed methods. Display device 302 may display touchable or selectable options for customers, drivers, and businesses to choose from, and may receive customer selections of options via a touch screen.

[0037] User equipment 300 includes an I / O device 304 that allows sending and receiving information or interacting with customers, drivers, merchants, or other devices. For example, I / O device 304 may include various input / output devices such as keyboards, mouse-type devices, gesture sensors, motion sensors, physical buttons, switches, microphones, touchscreen panels, styluses, etc., which can be operated by customers, drivers, and merchants to input information through user equipment 300. I / O device 304 may also include audio output devices, such as speakers, configured to provide sound and audio feedback to customers, drivers, and merchants operating user equipment 300. In some embodiments, I / O device 304 may include light-emitting components, such as LEDs or other components capable of providing visual signals to customers, drivers, and merchants. I / O device 304 may also include haptic output devices to provide haptic feedback to customers, drivers, and merchants. I / O device 304 may also include one or more communication modules (not shown) for sending and receiving information from other components in system 100, for example, by establishing a wired or wireless connection between user equipment 300 and communication network 114. I / O device 304 may include a radio frequency, infrared, or other near-field communication interface for communicating with other devices associated with communication network 114. Exemplary communication modules of I / O device 304 may include, for example, a short-range or near-field wireless communication modem, Wi-Fi... TM A communication modem or cellular communication modem. I / O device 304 may include a transceiver or transmitter configured to communicate using one or more wireless technologies / protocols, which may include, but are not limited to, cellular (e.g., 3G, 4G, etc.) technology, Wi-Fi, etc. TM Hot technologies, RFID, Near Field Communication (NFC) or Technologies, etc. More generally, any one-way or two-way communication technology known to those skilled in the art can be implemented in user equipment 300 to exchange information with integrated server system 116 or remote database 120 via communication network 114.

[0038] As described above, user equipment 300 may be a device executing a mobile application for performing operations consistent with the disclosed embodiments. Therefore, in some embodiments, program 314 stored on user equipment 300 may include one or more software applications 316 installed thereon, enabling user equipment 300 to communicate with integrated server system 116 via communication network 114 and perform aspects of the disclosed methods. For example, user equipment 300 may connect to integrated server system 116 using browser software to access and receive information or perform other operations associated with an internet service provider.

[0039] According to an exemplary embodiment, software application 316 associated with integrated server system 116 can be installed on user equipment 300, such as... Figure 3As shown. For example, the integrated server system 116 may receive a request from client device 102(1) to download one or more software applications 316 to the user client device 102(1). In one embodiment, the integrated server system 116 may use a web browser application installed on client device 102(1) to receive the request from a client associated with client device 102(1). In another embodiment, the integrated server system 116 may receive the request from a webpage or another portal associated with the integrated server system 116 to download one or more software applications 316 associated with the integrated server system 116 to client device 102(1), which may be accessed, for example, through client device 102(1). In this embodiment, the integrated server system 116 may store software instructions corresponding to one or more software applications 316 in a remote database 120. In response to a download request, the integrated server system 116 may receive additional information about a specific device specification of client device 102(1) to enable client device 102(1) to download the software instructions corresponding to that specific specification. Alternatively, the integrated server system 116 may push a download request link to the client device 102(1), or transmit the software code corresponding to one or more software applications 316 directly to the client device 102(1) via, for example, email, text or short message service (SMS) message, through an application prompt, or other suitable method. The client device 102(1) may receive the software code associated with one or more software applications 316, for example, via a communication network 114, to download and install the software code. Similarly, in another example, the integrated server system 116 may receive a request from a derivative associated with the goods delivery supplier device 106(1) to download one or more software applications 316 to the goods delivery supplier device 106(1). Furthermore, similarly, in another example, the integrated server system 116 may receive a request from a merchant associated with the goods service supplier device 110(1) to download one or more software applications 316 to the goods service supplier device 110(1).

[0040] picture. Figure 4A and 4B A flowchart is included, consistent with the disclosed embodiments, of an exemplary process 400 for receiving and propagating efficient search updates in real time, implemented by an integrated server system 116. The integrated server system 116 is implemented as... Figure 2 The server device 200 executes software instructions, and one or more operations are performed during the software instruction execution process 400. The following is in conjunction with... Figure 5 Let me explain the operation of process 400.

[0041] Figure 5 Includes showing Figure 4A and Figure 4B Flowchart 500 shows an exemplary process. Figure 5 The domain service module 210, entity change listener module 212, entity change store 222, and transaction listener module 214 of server device 200 in this example are implemented as an event processing system 502. Furthermore, the cache database 224, cache event publisher module 216, search event publisher module 218, and search index database 220 of server device 200 in this example are implemented as a database system 504. In some embodiments, the event processing system 502 and the database system 504 are part of an integrated server system 116.

[0042] According to process 400, in step 402, the domain service module 210 of the integrated server system 116 monitors the remote database 120 to determine modifications made to entries by customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), and goods service supplier devices 110(1)-110(n). For example, refer to Figure 5 Domain service module 210 monitors remote database 120 (not shown) to determine whether merchant profile information, customer profile information, and driver profile information stored in remote database 120 as data entries have been modified by customer devices 102(1)-102(n), goods delivery supplier devices 106(1), and / or goods service supplier devices 110(1)-110(n). Domain service module 210 can be configured to detect modifications in remote database 120. Domain service module 210 detects any writes to remote database 120.

[0043] For example, a merchant associated with the merchandise service provider device 110(1) at shop 112(1) accesses their merchant profile information through an online website portal. The merchandise service provider device 110(1) views the merchant profile information through a display on it. Furthermore, the remote database 120 can store data, such as merchant profile information, in a hierarchical structure. For example, the name of shop 112(1) can be a parent entity, while business hours, menu names, photo albums, address locations, etc., are child entities stored under the parent entity. In addition, menu information includes multiple categories, including appetizers, salads, Mexican food, main courses, desserts, etc., and these entries will be categorized as sub-sub-entities under the menu name sub-entity. For example, for shop 112(1), the merchant profile information may include the shop's business hours from 8:00 AM to 5:00 PM. The merchant at merchandise service provider device 110(1) changes their business hours from 8:00 AM to 5:00 PM to a new time of 9:00 AM to 6:00 PM. This modification results in an update to the store operating hours entry for store 112(n) in remote database 120. Domain service module 210 determines the update of the store operating hours entry on remote database 120 based on monitoring remote database 120. Similarly, multiple modifications can be made by each of multiple merchants, customers, and / or drivers to the corresponding merchant profile information, customer profile information, and / or driver profile information, resulting in the generation of multiple entity change requests.

[0044] By providing a hierarchical structure, this technology offers the advantage of an optimized process that reduces data overhead. By providing a hierarchical structure, the technology identifies the specific locations where modifications are to be made and thus generates entity change requests. These entity change requests include information in the search index database 220 that is only associated with the modified parent entity, child entity, and / or sub-sub-entity, rather than generating entity change requests that update the entire menu information when a sub-sub-entity changes, which requires additional data overhead.

[0045] In step 404, the entity change listener module 212 of the integrated server system 116 receives a first entity change request when an entry in the remote database 120 is modified. After determining the modification of the entry in step 402, the domain service module 210 sends the first entity change request. The first entity change request includes information corresponding to the entity that has been modified. For example, when modifying the price associated with an item in the "Appetizers" category of the menu, the first entity change request will include an entity identifier associated with a sub-entity of the "Appetizers" category and modification information; in this example, the modification information is the price associated with an item in the "Appetizers" category. Furthermore, the entity identifier can be an address stored in a lookup table in the search index database 220, such as... Figure 5 As shown in step 502.

[0046] In another example, when a merchant modifies the business hours information for shop 112(1), domain service module 210 monitors remote database 120 (as described in step 402), and after determining the modification of the data entry, domain service module 210 sends a first entity change request. The first entity change request includes an identifier associated with a sub-entity of the shop's business hours and modification information, in this example, the modification information being a change in business hours from 8:00 AM to 5:00 PM to a new time period from 9:00 AM to 6:00 PM. Similarly, during the time period when transaction listener module 214 receives pushed data from entity change storage 222, multiple merchants, customers, and / or drivers are respectively in the corresponding merchant profile information, customer profile information, and / or driver profile information. Customer devices 102(1)-102(n), goods delivery supplier devices 106(1)-106(n), goods service supplier devices 110(1)-110(n), and remote database 120 may be referred to as external systems.

[0047] In step 406, the entity change listener module 212 of the integration server system 116 stores the modifications made to the entry in the entity change storage 222. This storage is also referred to as saving the modifications made to the entry in the entity change storage 222. When a first entity change request is received, the integration server system 116 stores the identifier associated with the modified entry and the modification information included in the first entity change request. For example, when the first entity change request identifies the entry to be modified as the price of a product within the "Appetizer" category of a menu item, the integration server system 116 stores the entity identifier associated with the sub-entity of the "Appetizer" category, and in this example, the modification information of the price associated with the product in the "Appetizer" category in the entity change storage 222. Similarly, the identifier associated with the modified entry and the change information in the entity change request, based on multiple modifications performed by multiple merchants, customers, and / or drivers in their respective merchant profile information, customer profile information, and / or driver profile information, are also stored in the entity change storage 222, such as... Figure 5 As shown in step 504.

[0048] In step 408, the domain service module 210 of the integrated server system 116 sends a commit event request to the transaction listener module 214 to initiate transaction listening mode. The domain service module 210 generates the commit event request when the first entity change request is sent in step 402. This is in... Figure 5 As described in step 506.

[0049] In step 410, the entity change store 222 of the integration server system 116 pushes the data stored in step 406 to the transaction listener module 214. The transaction listener module 214 of the integration server system 116 initiates transaction listening mode after receiving a commit event request from the domain service module 210. After the transaction listening mode is initiated, the transaction listener module 214 waits to listen for data received from the entity change store 222. The entity change store 222 pushes the data stored in step 406 to the transaction listener module 214. The transaction listener module 214 identifies entity identifiers and corresponding modification information from the received data. The data push from the entity change store 222 is performed in real time. In some embodiments, data is pushed to the transaction listener module 214 immediately after it is stored in the entity change store 222. Multiple identifiers associated with the changed entries and the corresponding modifications associated with those entries are pushed by the entity change store 222. Similarly, the data pushed to the transaction listener module 214 and stored in the entity change storage 222 may include multiple modifications made by multiple merchants, customers, and / or drivers to the corresponding merchant profile information, customer profile information, and / or driver profile information during the time period when the transaction listener module 214 receives data from the entity change storage 222. Figure 5 Step 508 is shown in the diagram.

[0050] In another example, data is pushed from entity change store 222 at regular time intervals. These time intervals can include 1 microsecond, 1 second, 5 seconds, 5 minutes, 1 hour, and / or 24 hours, but can also include any other time interval. The data pushed from entity change store 222 includes multiple identifiers associated with entries that are changed during the time interval, as well as the corresponding modifications associated with those entries.

[0051] In another example, transaction listener module 214 retrieves the data stored in step 406 from entity change storage 222. The retrieved data may include an identifier associated with the modified entry and modification information included in the first entity change request. For example, the entity identifier may be associated with a sub-entity within the appetizer category, and the modification information in this example may be the price associated with a product within the appetizer category in entity change storage 222.

[0052] After receiving the entity identifier from the entity change store 222, the transaction listener module 214 identifies the event type associated with the entity identifier by either pushing the data stored in the entity change store 222 in step 406 to the transaction listener module 214, or by retrieving the data stored in the entity change store 222 in step 406. The identified event types include locations in the hierarchical structure associated with the entity identifier. For example, the event type may include locations associated only with the parent entity, child entity, and / or sub-child entity that has been modified.

[0053] In step 412, the transaction listener module 214 of the integration server system 116 identifies a trigger event in response to receiving data stored in the entity change store 222. The trigger event is an event used to generate multiple brief descriptions of the data received from the entity change store 222. The transaction listener module 214 identifies the initiation of the trigger event in response to receiving data stored in the entity change store 222. The initiation of the trigger event causes the transaction listener module 214 to generate multiple brief descriptions of the data received from the entity change store 222 in step 410. After identifying the trigger event, the transaction listener module 214 of the integration server system 116 generates brief descriptions of the data pushed by the entity change store 222. For example, the brief description is a copy of the data received by the transaction listener module 214 from the entity change store 222 in step 410. In another example, the brief description would be a database table, including reference indicators of the data stored in the entity change store 222. Figure 5 As shown in step 510, two brief descriptions are sent via paths 514 and 516. These brief descriptions contain the same data content being transmitted.

[0054] In step 414, the transaction listener module 214 of the integrated server system 116 sends a request to clear the entity change store 222. Upon receiving data pushed by the entity change store 222, the transaction listener module 214 sends a request to clear the data already pushed by the entity change store 222. Upon receiving the request to clear the data, the entity change store 222 deletes the pushed data. This... Figure 5 As described in step 512.

[0055] In step 416, the transaction listener module 214 of the integrated server system 116 transmits one of the brief descriptions and the corresponding event type identified in step 410 to the cached event publisher module 216. The cached event publisher module 216 then stores the brief description data in the cache database 224. When a request for access to modified merchant profile information, customer profile information, and / or driver profile information is received from the search index database 220, and if the search index database 220 is overloaded and cannot immediately provide data, the brief descriptions stored in the cache database 224 are used to facilitate the request. The request is served by the brief description data stored in the cache database 224. Figure 5 As shown in step 514, the first one in the brief description is sent to the cached event publisher module 216.

[0056] In step 418, the transaction listener module 214 of the integrated server system 116 transmits a brief description to the search event publisher module 218. The search event publisher module 218 stores the brief description. Figure 5 As shown in step 516, the second event type in the brief description and the corresponding event type identified in step 410 are transmitted to the search event publisher module 218.

[0057] Advance to Figure 4B In step 420, the search event publisher module 218 of the integrated server system 116 uses the event type received along with the brief description to determine the location associated with the modified entity. Based on the determined location, the search event publisher module 218 categorizes the data entries in the brief description into one of a plurality of data pipeline categories. The search event publisher module 218 is a streaming service that categorizes the data entries in the brief description into multiple streams based on the type of the category and forwards them along with the streams to the data pipeline categories. The pipeline category includes a parent entity associated with one of shops 112(1)-112(n). For example, pipeline category 526 may be associated with shop 112(1), and pipeline category 528 may be associated with shop 112(n). Based on the type of the location identified in the event type, the search event publisher module 218 determines one of the data pipelines 526-530 corresponding to the location identified in the event type and sends the data entry to the corresponding data pipeline 526-530.

[0058] In another embodiment, the pipeline category includes parent entity, child entity, and child-child entity, but may also include any other category. For example, Figure 5 Data pipes 526, 528, and 530 in the diagram can be the parent entity data pipe 526, the child entity data pipe 528, and the child-child entity data pipe 530. Figure 5(Not shown in the image). The search event publisher module 218 sends the data entries categorized as parent entities in step 420 as a first stream to the parent entity data pipeline 526. Additionally, the search event publisher module 218 can send a second stream from the sub-entity data pipeline 528 for data entries categorized as child entities, and a third stream from the sub-sub-entity data pipeline 530 for data entries categorized as sub-sub-entities. Merchant information is organized in a hierarchical structure. For example, the name of shop 112(1) can be the parent entity, while business hours, menu names, photo albums, address locations, etc., are child entities stored under the parent entity. In this example, the name of shop 112(1) is the parent entity. Business hours, menu names, photo albums, address locations, etc., can be child entities stored under the parent entity. Furthermore, menu information can include multiple categories, such as appetizers, salads, Mexican dishes, main courses, desserts, etc. These entries can be categorized as sub-sub-entities under the menu name sub-entity. In another example, the pipe categories include appetizers, salads, Mexican dishes, main courses, and desserts.

[0059] In step 422, the search event publisher module 218 of the integrated server system 116 identifies which location in the hierarchical structure was specifically modified and categorizes the data entry as a parent entity, child entity, or sub-child entity based on the modification location. After identifying the category associated with the data entry, the search event publisher module 218 sends each data entry in the corresponding data pipeline. Based on the categorization performed in step 420, the data entry is categorized into the corresponding data pipeline. As an example, in step 420, the search event publisher module 218 identifies the location type based on the event type, determines one of the corresponding data pipelines 526-530 as the identified location in the event type, and sends the data entry to the corresponding data pipeline 526-530. When the search event publisher module 218 identifies the location associated with the data entry based on the event type corresponding to the location in data pipeline 526, the search event publisher module 218 sends the data entry to data pipeline 526. As another example, in step 420, the search event publisher module 218 can identify that the received entity change includes a change from the business hours of 8:00 AM to 5:00 PM to a new time of 9:00 AM to 6:00 PM. In response, the search event publisher module 218 identifies the data entry for the store business hours as sub-entry data and accordingly sends the identifier of the store business hours and the modification information associated with the store business hours to the sub-entity data pipeline 528. In this example, the modification information is the change from 8:00 AM to 5:00 PM to the new time of 9:00 AM to 6:00 PM. Similarly, the search event publisher module 218 sends data entries categorized as parent entities to the parent entity data pipeline 526 via 520, and data entries categorized as sub-sub-entities to the sub-sub-entity data pipeline 530 via 524.

[0060] In step 424, the search index database 220 of the integrated server system 116 receives categorized data from the parent entity data pipeline 526, the child entity data pipeline 528, and / or the sub-sub-entity data pipeline 530 via stream 532. The search index database 220 receives data from the parent entity data pipeline 526 and updates the data entries associated with the parent entity. Similarly, the search index database 220 receives data from the child entity data pipeline 528 and updates the data entries associated with the child entity. Similarly, the search index database 220 receives data from the sub-sub-entity data pipeline 530 and updates the data entries associated with the sub-sub-entities.

[0061] In step 426, the search index database 220 of the integrated server system 116 receives a user search request to access data entries from merchant profile information, customer profile information, and / or driver profile information. Upon receiving the user search request, the search index database 220 provides a response including search results associated with the modified data entries, which were updated in step 424 and correspond to the data entries included in the user search request.

[0062] Figure 6 It shows Figure 5 Alternative embodiments, which include those illustrating Figure 4A and Figure 4B A flowchart of an exemplary process. Figure 6 The domain service module 210, entity change listener module 212, entity change store 222, transaction listener module 214, and search publisher module 218 of the server device 200 in this example are shown. In this example embodiment, these modules are implemented as an event processing system 602. Furthermore, the event consumer module 226, event processing module 227, event entity generator 228, event publisher module 229, merchant application programming interface (API) 230, cache database 224, cache event publisher module 216, search event publisher module 218, and search index database 220 are implemented as a database system 604. In some embodiments, the event processing system 602 and database system 604 are part of an integrated server system 116.

[0063] According to process 400 ( Figure 4A and 4B )and Figure 5 Step 602 is basically similar to step 502. Step 604 is basically similar to step 604. Step 606 is basically similar to step 506. Step 608 is basically similar to step 508.

[0064] In some embodiments, step 610 is substantially similar to step 510. In other embodiments, the transaction listener module 214 of the integration server system 116 identifies a triggering event in response to receiving data stored in the entity change store 222. The triggering event is an event that transmits data received from the entity change store 222 to the search event publisher module 218. The transaction listener module 214 identifies the initiation of the triggering event in response to receiving data stored in the entity change store 222. The initiation of the triggering event causes the transaction listener module 214 of the integration server system 116 to transmit the received data to the search event publisher module 218, as shown in step 610. In step 612, the transaction listener module 214 of the integration server system 116 sends a request to clear the entity change store 222. Upon receiving data pushed by the entity change store 222, the transaction listener module 214 sends a request to clear the data pushed by the entity change store 222. After receiving the request to clear the data, the entity change store 222 deletes the pushed data.

[0065] The search event publisher module 218 stores the data received from stream 610 and then continues to determine whether the received data includes modified data, as shown in step 614. Here, the search event publisher module 218 compares the received data with the corresponding data previously stored on the search event publisher module 218 to determine whether the data has been modified. When the search event publisher module 218 determines that the received data does not include modified data, the method proceeds to process 616, and the method ends there. However, when the search event publisher module 218 determines that the received data includes modified data, the modified data is sent to the event consumer module 226, as shown in process 618. The event consumer module 226 continues to determine whether a matching event type exists based on the received data described in stream 620. The event consumer module 226 determines whether the received data has been identified as being modified to match the event type. Based on identifying the location in the data identified as being modified, the event type can include modification of a parent entity, child entity, or sub-child entity. After identifying the event type, such as a modification to be made on a sub-entity, the event consumer module 226 transmits the data identified as to be modified to the event processing module 227, as shown in flow 622. The event handler module 228 then updates the merchant application programming interface (API) and retrieves updated data to reflect the modifications made, as shown in flow 624. After updating the merchant API 230, the event processing module 227 then continues transmitting the data identified as to be modified to generate the event entity module 228, as shown in 626. The entity generation module 228 then generates multiple brief descriptions of the data identified as to be modified. For example, a brief description is a copy of the data identified as to be modified in step 410. In another example, a brief description is a database table that includes reference indicators for data stored in the entity change store 222. Multiple brief descriptions refer to multiple copies of the same data identified as to be modified. The entity generation module 228 then sends the multiple copies of the same data identified as to be modified to the event publisher module 229. Event publisher module 229 sends one of the briefs to cached event publisher module 216 via process 630. Cached event publisher module 216 stores the brief data in cache database 224. Event publisher module 229 also sends a second brief to search event publisher module 218.

[0066] The search event publisher module 218 of the integrated server system 116 identifies locations in the hierarchy where specific modifications have been made and, based on these locations, categorizes the data entry into a parent entity (e.g., store information), a child entity (store menu information), or a sub-sub-entity (store opening hours, store opening information during holidays, irregular store opening hours during holidays). In this example, store information is associated with data pipeline 636b, store menu information with data pipeline 638b, store opening hours information with data pipeline 640b, store opening information during holidays with data pipeline 642b, and irregular opening hours during holidays with data pipeline 644b. After identifying the category associated with the data entry, the search event publisher module 218 transmits each data entry in the corresponding data pipeline associated with that category based on the performed categorization. Furthermore, the search event publisher module 218 can send the modified data entry corresponding to the store information to data pipeline 636b via stream 636a. Search event publisher module 218 can transmit modified data entries corresponding to the store's menu information to data pipeline 638b via stream 638a. Search event publisher module 218 can transmit modified data entries corresponding to the store's opening hours information to data pipeline 640b via stream 640a. Search event publisher module 218 can transmit modified data entries corresponding to the store's opening information during holidays to data pipeline 642b via stream 642a. Search event publisher module 218 can transmit modified data entries corresponding to the store's irregular opening hours during holidays to data pipeline 644b via stream 644a. Furthermore, step 646 is substantially similar to step 532.

[0067] The disclosed embodiments provide an improved method for receiving and propagating efficient search updates, offering the technical advantage of an optimized process that reduces data overhead and provides a real-time process for search updates. Because this technique provides a real-time search update process by pushing data stored in an entity change store, it offers a fast and reliable process that reflects modifications made to the database, allowing changes to be displayed as part of search results more quickly. Therefore, this technique reduces latency caused during data entry updates. Furthermore, the technique identifies specific locations where modifications are made and thus generates entity change requests that include information intended to update search index database information associated only with the modified parent entity, child entity, and / or sub-sub-entities. Therefore, this technique reduces data overhead compared to generating entity change requests to update the entire menu information when a sub-sub-entity changes, which requires additional data overhead.

[0068] Conversely, other strategies already implemented in the prior art are inefficient because they require additional data overhead, which can be detrimental to the efficient use of network resources and thus increase the network load. Furthermore, prior art introduces significant delays during the search update process, while the disclosed embodiments provide a real-time update process that reduces the delay in reflecting modifications made to data entries.

[0069] While illustrative embodiments have been described herein, their scope includes any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., aspects of various embodiments), adaptations, and / or variations, as will be understood by those skilled in the art based on this disclosure. For example, the number and orientation of components shown in the exemplary system may be modified. Therefore, the foregoing description has been given for illustrative purposes only. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art upon consideration of the specification and practice of the disclosed embodiments.

[0070] The elements in the claims are to be interpreted broadly based on the language used in the claims and are not limited to the examples described in this specification or during the making of this application, which should be interpreted as non-exclusive. Therefore, this specification and embodiments are to be considered exemplary only, and the true scope and spirit are represented by the appended claims and their full scope.

Claims

1. A computer-implemented system for receiving and propagating efficient search updates, the system comprising: a memory storing instructions; and at least one processor configured to execute the instructions to: receive, over a network, a first entity change request from a first external system to modify data in an entity associated with the first external system; save the first entity change request to an entity store; push the first entity change request from the entity store to an event publisher for forwarding to a stream service; generate a plurality of summaries of the first entity change request of the event publisher prior to forwarding the received first entity change request to the stream service; classify the first entity change request based on at least one summary of the plurality of summaries, wherein the classification of the first entity change request is a parent entity or a child entity; forward the classified entity change request from the stream service to a search index database; and update a search index based on the classified entity change request.

2. The system of claim 1, wherein: each entity comprises a plurality of child entities; each first entity change request comprises a request to modify a child entity of a respective entity.

3. The system of claim 1, wherein, the first entity change request comprises a change to a service, a change to a good, or a change to data associated with the external system.

4. The system of claim 1, wherein, the instructions further cause the processor to: receive a request to begin a transaction from the first external system; receive a plurality of entity change requests from the first external system.

5. The system of claim 1, wherein, the instructions further cause the processor to, in response to pushing the first entity change request from the entity store, clear the entity store of all entity change requests.

6. The system of claim 1, wherein, the instructions further cause the processor to push the first entity change request from the entity store to a second event publisher for storage in a cache database.

7. The system of claim 6, wherein, pushing the first entity change request from the entity store to the event publisher and the second event publisher comprises formalizing the first entity change request into a summary.

8. The system of claim 7, wherein, the instructions further cause the processor to: roll back modifications to an entity associated with the first external system; search the cache database to determine a plurality of summaries that need to be reversed.

9. The system of claim 1, wherein, forwarding the classified entity change request to a search index comprises forwarding the classified entity change request to the search index through a live stream selected based on the classification of the entity change.

10. A computer-implemented method for receiving and propagating efficient search updates, the method comprising: receiving, over a network, a first entity change request from a first external system to modify data in an entity associated with the first external system; saving the first entity change request to an entity store; pushing the first entity change request from the entity store to an event publisher for forwarding to a stream service; generating a plurality of summaries of the first entity change request of the event publisher prior to forwarding the received first entity change request to the stream service; classifying the first entity change request based on at least one summary of the plurality of summaries, wherein the classification of the first entity change request is a parent entity or a child entity. classify the first entity change request based on at least one of the plurality of summaries, wherein the classification of the first entity change request is a parent entity or a child entity; forward the classified entity change request from the stream service to a search index database; and update a search index based on the classified entity change request.

11. The method of claim 10, wherein: each entity comprises a plurality of child entities; each first entity change request comprises a request to modify a child entity of a respective entity.

12. The method of claim 10, wherein, the first entity change request comprises a change to a service, a change to a good, or a change to data associated with the external system.

13. The method of claim 10, further comprising: receiving a request to begin a transaction from the first external system; receiving a plurality of entity change requests from the first external system.

14. The method of claim 10, further comprising: in response to pushing the first entity change request from the entity store, purging the entity store of all entity change requests.

15. The method of claim 10, further comprising: pushing the first entity change request from the entity store to a second event publisher for storage in a cache database.

16. The method of claim 15, wherein, pushing the first entity change request from the entity store to the event publisher and the second event publisher comprises formalizing the first entity change request into a summary.

17. The method of claim 16, further comprising: reverting modifications to an entity associated with the first external system; searching the cache database to determine a plurality of summaries that need to be reversed.

18. The method of claim 10, wherein, forwarding the classified entity change request to a search index comprises forwarding the classified entity change request to the search index through a live stream selected based on the classification of the entity change.

19. A computer-implemented system for receiving and propagating efficient search updates, the system comprising: a memory storing instructions; and at least one processor configured to execute the instructions 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; save the first entity change request to an entity store; push the first entity change request from the entity store to an event publisher for forwarding to a stream service; push the first entity change request from the entity store to a second event publisher for storage in a cache database, wherein pushing the first entity change request from the entity store to the event publisher and the second event publisher comprises formalizing the first entity change request into a summary; in response to pushing the first entity change request from the entity store, purge the entity store of all entity change requests; generate a plurality of summaries of the first entity change request of the event publisher prior to forwarding the received first entity change request to the stream service; classify the first entity change request based on at least one of the plurality of summaries, wherein the classification of the first entity change request is a parent entity or a child entity; forwarding the categorized entity change request from the stream service to a search index database; and updating a search index based on the categorized entity change request.

Citation Information

Patent Citations

  • Universal search service for multi-region and multi-service cloud computing resources

    US10528627B1