Asynchronous Distributed Search for Non-Blocking Electronic Asset Queries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional search engines lock users on the search screen for an extended period while waiting for large search queries to complete, preventing them from taking other actions.
Innovation Solution
Implementing an asynchronous search system that allows users to submit search queries with a time parameter, returning initial results synchronously and additional results asynchronously using a unique query identifier (QID), enabling incremental result viewing and background query execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous search execution is used to ensure complete results are returned, then result completeness is improved, but user productivity deteriorates because users are blocked on the search screen for extended periods
Solution Approach 1:
The patent segments the search result delivery process into multiple parts: initial results are returned synchronously within the time constraint, while remaining results are delivered asynchronously later. This allows users to immediately see partial results and continue working, while the system continues processing and delivers additional results without blocking the user interface.
Solution Approach 2:
The system performs preliminary actions by returning initial search results as quickly as possible within the time constraint, before the complete search is finished. This preliminary delivery of results allows users to start interacting with the system immediately, while the remaining search processing continues in the background.
2Reliability
If search queries are executed on large data sets to ensure comprehensive results, then result completeness is improved, but query execution time increases causing users to be blocked for extended periods
Solution Approach 1:
The patent segments the search execution and result delivery into synchronous and asynchronous phases. The synchronous phase returns initial results quickly within the time constraint, while the asynchronous phase continues processing and delivers remaining results later, effectively separating the time-critical delivery from the time-consuming computation.
Solution Approach 2:
The system dynamically adjusts the search execution strategy based on the time constraint. When a time parameter is provided, the system transitions from purely synchronous execution to a hybrid approach where results are delivered in waves - initial results synchronously and remaining results asynchronously - allowing flexible adaptation to time requirements.
3Reliability
If the system waits for complete search results before returning any output, then result completeness is improved, but response time deteriorates causing extended user blocking
Solution Approach 1:
The patent segments result delivery into multiple batches: an initial batch is returned synchronously within the time constraint, and subsequent batches are delivered asynchronously. This segmentation allows the system to provide immediate partial response while continuing to process and deliver complete results over time.
Solution Approach 2:
The system performs preliminary result delivery by returning initial search results as soon as they are available, before the complete search execution finishes. This preliminary action provides immediate value to the user while the remaining processing continues in the background without blocking the user interface.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Asynchronous search of electronic assets via a distributed search engine is disclosed herein. An example method includes receiving a request from a user, the request including a query and a query time parameter, the query time parameter defining a time that the user will wait for results to be completed synchronously, determining that the query is incomplete and that the time has been exceeded, issuing the query a unique query identifier, and asynchronously adding results to an index based on the unique query identifier.