Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A SYSTEM, METHOD, COMPUTER PROGRAM AND DATA SIGNAL FOR CONDUCTING AN ELECTRONIC SEARCH OF A DATABASE
Document Type and Number:
WIPO Patent Application WO/2017/063049
Kind Code:
A1
Abstract:
In one aspect, the present invention provides a user search engine comprising a search API configured to receive a user search request and query a primary data store and at least one secondary data store, and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store. The at least one search result from the primary data store is assigned a higher ranking than at least one search result from the at least one secondary data store, wherein the search API's further configured to expose the search results aggregated by the data aggregator.

Inventors:
EVERTZ BRANDON (AU)
EVERTZ RICHARD (AU)
Application Number:
PCT/AU2016/050970
Publication Date:
April 20, 2017
Filing Date:
October 14, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BIG IP PTY LTD (AU)
International Classes:
G06F17/30
Foreign References:
US20080281810A12008-11-13
US20100306213A12010-12-02
US20070011142A12007-01-11
US8392394B12013-03-05
US20010004737A12001-06-21
US20080201304A12008-08-21
US20070192300A12007-08-16
US8688702B12014-04-01
US20020087500A12002-07-04
US20030084038A12003-05-01
US5388255A1995-02-07
Attorney, Agent or Firm:
AJ PARK IP PTY LIMITED (AU)
Download PDF:
Claims:
Claims:

1. A user search engine comprising a search API configured to receive a user search request and query a primary data store and at least one secondary data store, and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store, wherein the search API further configured to expose the search results aggregated by the data aggregator. 2. A user search engine in accordance with claim 1, wherein the search API is

configured to receive the user search request over a data network from a user device connected to the search engine.

3. A user search engine in accordance with claim 2, wherein the search API is

configured to receive the user search request from a user interface associated to a user device.

4. A user search engine in accordance with claim 3, wherein the primary data store comprises at least one electronic database.

5. A user search engine in accordance with claim 4, wherein the primary data store comprises a cluster of electronic databases. 6. A user search engine in accordance with claim 5, wherein the at least one

secondary data store comprises at least one external data source remote from the primary data store.

7. A user search engine in accordance with claim 6, wherein the at least one

external data source comprises at least one electronic database. 8. A user search engine in accordance with claim 7, wherein the search engine

comprises at least one data source adapter configured to receive the query from the search API, query the, or at least one of, the secondary data store(s), and expose the search results obtained from querying the secondary data store(s) to the data aggregator.

9. A user search engine in accordance with claim 8, wherein at least one data source adapter is configured to receive the query from the search API, query the, or at least one of, the secondary data store(s), and expose the search results obtained from querying the secondary data store(s) to the data aggregator.

10. A user search engine in accordance with claim 9, wherein the data aggregator is configured to assign respective rankings to a plurality of search results from the primary data store that are higher than the respective rankings assigned to a plurality of search results from the at least one secondary data store.

11. A user search engine in accordance with claim 10, wherein the data aggregator is configured to assign respective rankings to each of the search results from the primary data store that are higher than the respective rankings assigned to a plurality of search results from the at least one secondary data store.

12. A user search engine in accordance with claim 11, wherein a background search engine is configured to receive at least some of the search results from the data aggregator, query the at least one secondary data store, and store at least some of the search results from the at least one secondary data store in the primary data store.

13. A user search engine in accordance with claim 12, wherein the background search engine comprises a jobs queue store configured to maintain a plurality of background search requests; a jobs queue manager configured to fetch at least one search request from the jobs queue store; and a background process manager configured to receive at least one search request from the jobs queue store, query the at least one secondary data store, and store at least some of the search results in the primary data store.

14. A system for conducting a search of electronic data, comprising a search API configured to receive a user search request, and query a primary data store and at least one secondary data store, and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store, the search API further configured to expose the search results aggregated by the data aggregator.

15. An electronic display arranged to provide search results to a user, comprising a computing system including a search API configured to receive a user search request, and query a primary data store and at least one secondary data store, and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store, the search API further configured to expose the search results aggregated by the data aggregator.

16. A processor programmed to access a search API configured to receive a user search request, and query a primary data store and at least one secondary data store, and access a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store, wherein the search API is further configured to expose the search results aggregated by the data aggregator.

17. A computer-readable medium having stored thereon computer-executable

instructions that, when executed by a processor, cause the processing to perform a method of performing an electronic search comprising a search API configured to receive a user search request, and query a primary data store and at least one secondary data store, and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store, the search API further configured to expose the search results aggregated by the data aggregator.

Description:
A SYSTEM, METHOD, COMPUTER PROGRAM AND DATA SIGNAL FOR CONDUCTING AN ELECTRONIC SEARCH OF A DATABASE

FIELD OF THE INVENTION

The invention relates to a search engine and search methodology, particularly for use in providing a list of search results to a user. Embodiments of the invention find particular, but not exclusive, use in the provision of a list of search results based, in part, on an aggregation of results from a plurality of data stores. In a further embodiment, the list of search results is ordered based on one or more criteria.

BACKGROUND OF THE INVENTION Search engines are known. While public Internet based search engines such as Google (TM) are known and used by billions of people around the world, there are also many specialised search engines that are used in many different computing contexts, such as searches of public and/or private data stores via web applications, mobile device 'apps' and traditional 'desktop' computing devices. Specialised search engines are fundamentally different from 'public' search engines such as Google (TM). Public search engines attempt to index and search a growing and ever changing supply of data and information. In other words, public search engines have no effective control over the nature, arrangement and type of data that they may need to index. Moreover, they have no effective control on the volume of new data created. As such, public search engines must make assumptions regarding the type of data being created and must attempt to index such data in a meaningful way.

Private search engines have the advantage of working with data sets where the structure of the data is known and predictable. As such, specialised search engines have the advantage of being optimisable for particular types of data. Therefore, it follows that private search engines should, relative to public search engines, provide more targeted and better results. However, private search engines are limited by their respective data set and the number of users capable of adding to the data set.

In short, public search engines, on the whole, have access to more data but are arguably not well indexed, whereas private search engines have access to a smaller pool of data but can be optimised to provide very detailed and accurate results.

SUMMARY OF THE INVENTION

A user search engine comprising :

Substitue Sheets

(Rule 26)

RO/AU a search API configured to receive a user search request, and query a primary data store and at least one secondary data store; and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store; the search API further configured to expose the search results aggregated by the data aggregator.

In one embodiment, the Database contains raw data in a structured, relational format. In one embodiment, there is provided a so-called "Elastic Search cluster", which contains a data set which is functionally identical to the data set in the relational database;

however it is algorithmically indexed and optimised for search purposes.

Preferably the search API is configured to receive the user search request over a data network from a user device connected to the search engine. Preferably the search API is configured to receive the user search request from a user interface associated to a user device.

Preferably the primary data store comprises at least one electronic database.

Preferably the primary data store comprises a cluster of electronic databases.

Preferably the at least one secondary data store comprises at least one external data source remote from the primary data store.

Preferably the at least one external data source comprises at least one electronic data base.

Preferably the search engine comprises at least one data source adapter configured to receive the query from the search API; query the, or at least one of, the secondary data store(s); and expose the search results obtained from querying the secondary data store(s) to the data aggregator.

Preferably at least one data source adapter is configured to receive the query from the search API; query the, or at least one of, the secondary data store(s); and expose the search results obtained from querying the secondary data store(s) to the data aggregator. Preferably the data aggregator is configured to assign respective rankings to a plurality of search results from the primary data store that are higher than the respective rankings assigned to a plurality of search results from the at least one secondary data store. Preferably the data aggregator is configured to assign respective rankings to each of the search results from the primary data store that are higher than the respective rankings assigned to a plurality of search results from the at least one secondary data store.

Preferably a background search engine is configured to receive at least some of the search results from the data aggregator; query the at least one secondary data store; and store at least some of the search results from the at least one secondary data store in the primary data store.

Preferably the background search engine comprises a jobs queue store configured to maintain a plurality of background search requests; a jobs queue manager configured to fetch at least one search request from the jobs queue store; and a background process manager configured to receive at least one search request from the jobs queue store, query the at least one secondary data store, and store at least some of the search results in the primary data store.

A system for conducting a search of electronic data, comprising : a search API configured to receive a user search request, and query a primary data store and at least one secondary data store; and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store; the search API further configured to expose the search results aggregated by the data aggregator.

An electronic display arranged to provide search results to a user, comprising :

A computing system including a search API configured to receive a user search request, and query a primary data store and at least one secondary data store; and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store; the search API further configured to expose the search results aggregated by the data aggregator. A processor programmed to:

Access a search API configured to receive a user search request, and query a primary data store and at least one secondary data store; and

Access a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store; the search API further configured to expose the search results aggregated by the data aggregator.

A computer-readable medium having stored thereon computer-executable instructions that, when executed by a processor, cause the processing to perform a method of ** comprising : a search API configured to receive a user search request, and query a primary data store and at least one secondary data store; and a data aggregator configured to receive and aggregate search results from the primary data store and the at least one secondary data store such that at least one search result from the primary data store is assigned a higher ranking that at least one search result from the at least one secondary data store; the search API further configured to expose the search results aggregated by the data aggregator. The term 'comprising' as used in this specification means 'consisting at least in part of. When interpreting each statement in this specification that includes the term

'comprising', features other than that or those prefaced by the term may also be present. Related terms such as 'comprise' and 'comprises' are to be interpreted in the same manner. The term 'connected to' includes all direct or indirect types of communication, including wired and wireless, via a cellular network, via a data bus, or any other computer structure. It is envisaged that they may be intervening elements between the connected integers. Variants such as 'in communication with', 'joined to', and 'attached to' are to be interpreted in a similar manner. Related terms such as 'connecting' and 'in connection with' are to be interpreted in the same manner. The invention in one aspect comprises several steps. The relation of one or more of such steps with respect to each of the others, the apparatus embodying features of construction, and combinations of elements and arrangement of parts that are adapted to affect such steps, are all exemplified in the following detailed disclosure.

This invention may also be said broadly to consist in the parts, elements and features referred to or indicated in the specification of the application, individually or collectively, and any or all combinations of any two or more said parts, elements or features, and where specific integers are mentioned herein which have known equivalents in the art to which this invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth. As used herein, \s)' following a noun means the plural and/or singular forms of the noun.

As used herein, the term 'and/or' means 'and' or 'or' or both.

It is intended that reference to a range of numbers disclosed herein (for example, 1 to 10) also incorporates reference to all rational numbers within that range (for example, 1, 1.1, 2, 3, 3.9, 4, 5, 6, 6.5, 7, 8, 9, and 10) and also any range of rational numbers within that range (for example, 2 to 8, 1.5 to 5.5, and 3.1 to 4.7) and, therefore, all sub-ranges of all ranges expressly disclosed herein are hereby expressly disclosed.

These are only examples of what is specifically intended and all possible combinations of numerical values between the lowest value and the highest value enumerated are to be considered to be expressly stated in this application in a similar manner.

In this specification where reference has been made to patent specifications, other external documents, or other sources of information, this is generally for the purpose of providing a context for discussing the features of the invention. Unless specifically stated otherwise, reference to such external documents or such sources of information is not to be construed as an admission that such documents or such sources of information, in any jurisdiction, are prior art or form part of the common general knowledge in the art.

Although the present invention is broadly as defined above, those persons skilled in the art will appreciate that the invention is not limited thereto and that the invention also includes embodiments of which the following description gives examples. BRIEF DESCRIPTION OF THE DRAWINGS

Preferred forms of the invention will now be described by way of example only with reference to the accompanying figures in which :

Figure 1 shows a system 10 in which an embodiment of a user search engine 15 and an embodiment of a background search engine 20 are configured to operate.

Figure 2 and 3 show flowcharts which illustrate an embodiment of a computer enabled method in accordance with an embodiment of the invention.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

User search engine At least one user operates at least one user device. Embodiments of user devices are indicated at 25I...N. User device 25i is shown as a desktop computing device. User device 252 is shown as a portable computing device for example a laptop. User device 253 is shown as a handheld device for example a tablet or smart phone. It will be appreciated that some embodiments of user devices include devices not shown in figure 1. These include for example wearable or implantable devices.

A user operates a user device 25 to search for information of interest to a user. One example of information of interest to a user includes information about nearby restaurants, bars, and other hospitality service providers. In an embodiment a browser client 30I...N installed on a respective user device 25I...N provides a user who is operating user device 25 with search functionality.

User devices 25 are connected to data network 35. The data network 35 permits the user devices 25 to exchange data between the user search engine 15, the background search engine 20, and various other components of the system 10 as will be described below. The user search engine 15 comprises a search API 40 and a data aggregator 45. The search API 40 is configured to receive a user search request. The user search request is typically created within a browser client 30 on a user device 25. In an embodiment the search API 40 is remote from the user device 25. The search request is transmitted from the user device 25 over the data network 35 to the search API 40. In an embodiment the search API 40 is installed on a user device 25. The search API 40 receives the search request from a user interface associated to the user device 25. Where the search API 40 is installed on a user device 25, the API 40 either replaces or complements the browser client 30.

The search API 40 is connected to at least one primary data store 50 and at least one secondary data store 55. In an embodiment the primary data store includes an electronic database 50i. In an embodiment the primary data store comprises a cluster of electronic databases 502. In an embodiment database cluster 5Ο2 includes a plurality of connected electronic databases, search servers, and a load balancer configured to efficiently distribute the load across members of the database cluster 5Ο2.

In an embodiment the secondary data store 55 comprises at least one external data source remote from the primary data store 50. In an embodiment at least one external data source 55 comprises an electronic database.

Search API 40 is configured to query the primary data store 50 and the secondary data store 55. In an embodiment the search API 40 queries primary data store 50 and secondary data store 55 directly. In an embodiment at least one data source adapter receives the query from the search API 40 and then queries the secondary data store 50. Examples of data source adapters are indicated at 6O1, 6Ο2 and 6Ο3 respectively. In an embodiment the user search engine 15 or the search API 40 includes one or more data source adapters 50 configured to query the secondary data store 50.

It is anticipated that the database schema(s) for the primary data store 50 is/are known to the user search engine 15. The external data sources 55 by contrast are maintained by different entities. The database schema for the respective external data sources 55 are likely to be different. For this reason it is beneficial to provide at least one data source adapter to provide an interface between a database schema desired by the user search engine 15 and the actual database schema implemented in an external data source 55.

The data aggregator 45 is configured to receive and aggregate search results from the primary data store 50 and the secondary data store 55. The data aggregator 45 exposes the search results to the search API 40. The search API 40 in turn exposes the search results to the browser client 30 on user device 25. In an embodiment the search results are transmitted over the data network 35 to the user device 25. In an embodiment where the search API 40 is installed on a user device 25, the search API makes the search results available to the user through a user interface on the user device 25. In an embodiment that includes at least one data source adapter 60, adapter 60 exposes the search results obtained from querying the secondary data store 55 to the data aggregator 45.

The data aggregator 45 is configured to assign a higher ranking to at least one search result from the primary data store 50 than at least one search result from the secondary data store 55. Assigning a higher ranking to a search result has the effect of highlighting the search result to a user operating a user device 25.

In an embodiment a higher ranking has the effect of positioning a search result with a high ranking above or in front of a search result with a low ranking when a plurality of search results are displayed in an ordered list. In an embodiment a higher ranking has the effect of otherwise highlighting a search result with a high ranking to the user. This includes positioning a search result in a different location within a user interface presented to a user, displaying a search result in a different colour or font or otherwise highlighting the search result to the user. Background search engine

In an embodiment the background search engine 20 comprises a job queue store 65, a job queue manager 70, and a background process manager 75.

In an embodiment the job queue store 65 is configured to maintain a plurality of background search requests. The background search requests are constructed at least partly from at least some of the search results from the data aggregator 45. In an embodiment the job queue store 65 stores metadata including a start time, number of execution attempts, remote resources to be accessed, data to be obtained from such remote resources, and the analysis to perform on that data.

In an embodiment the job queue manager 70 is configured to fetch at least one search request from the job queue store 65.

In an embodiment the background process manager 75 is configured to receive at least one search request obtained from the job queue store 65 by the job queue manager 70. Background process manager 75 is configured to query the secondary data store 55. Data obtained from the secondary data store 55 in the form of search results are then stored in the primary data store 50.

The function of the background search engine 20 is to ensure that the primary data store 50 is current and up-to-date. Background queries are continually made to external data sources 55. These background queries are at least partly constructed from user queries. Data obtained from querying the secondary data store 55 is merged with the data maintained in the primary data store 50. This has the effect assigning a priority to maintaining data in the primary data store 55 that is frequently the subject of a user query. Figure 2 shows an embodiment of a user search methodology 200 performed by the user search engine 15. A user operating a user device 25 constructs a user search request. The user search request is received 205 by the user search engine 15.

The user search engine 15 queries 210 the primary data store 50, and queries 215 the secondary data store 55. The data aggregator 45 aggregates 220 the search results obtained from querying the primary data store and the secondary data store.

It is determined whether or not a background search 225 is needed. If a background search is needed then a new job is added 230 to the job queue store 65.

The aggregated search results are then ranked 235 before being presented to the user.

Figure 3 shows an embodiment of a background search methodology 300 performed by the background search engine 20. The jobs queue manager 70 fetches 305 a search request from the job queue storage 65.

The background process manager 75 queries 310 the secondary data store 55 and aggregates 315 the search results.

The background process manager 75 also queries 320 the primary data store and aggregates 325 the search results.

If it appears 330 that there are new results to add to the primary data store 50 then the primary data store is updated 335 with the new data.

If there are no further search requests 340 then the background search ends. Otherwise the next search request is fetched from the job queue storage 65.

The foregoing description of the invention includes preferred forms thereof. Modifications may be made thereto without departing from the scope of the invention.