Multi-source searching in a data driven application

Embodiments of the invention provide a method, system and computer program product for a multi-source search. In an embodiment, a method for multi-source searching for a data driven application includes defining a form for a data driven application that includes user interface controls each corresponding to respectively to different fields in different data sources. The method also includes generating a search index for the form incorporating the different fields, coupling the form with a search user interface that includes a search control configured to accept at least one query term and associating the search control with a selection of the different fields. Thereafter, during execution of the data driven application, a search engine query can be directed for the selection of the different fields in the search index and not the different data sources according to the at least one query term provided in the search user interface.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of database query operations and more particularly to search multiple fields of multiple different data sources through a query interface.

2. Description of the Related Art

A database query is an inquiry into a database used to extract data from the database in a readable format according to the user's request. A database query generally requires a connection into a database, an interface through which one or more query terms can be specified and a query engine configured to process the query terms according to one or more conditions—generally expressed by boolean operators or mathematical operators or both. The interface can be nothing more than an application programming interface specifying a prototype to which a database query should conform. Alternatively, the interface can be a graphical user interface into which an end user can specify search terms and operators—in more advanced forms—using a drag and drop interface for either or both of bounded query terms and operators.

A database often includes multiple different tables. As such, to query multiple different tables, first the tables must be treated as one so that a query can be performed against the different tables as if the different tables were a single, unitary table. In structured query language (SQL), the JOIN statement is used to achieve the treatment of different tables as one when conducting a query operation. However, joining two tables together can be computationally expensive and effective only when access and control to both tables can be achieved. For external data sources, no such access and control can be provided thereby impeding the joining of an internal data source with an external data source.

Historically, data driven applications relied upon data disposed in locally disposed data stores. With the advent of distributed computing and advanced database management technologies, however, modern data driven applications access data in both local and remote data stores. Even more advanced business object centric applications access data both in local data stores and also remotely over the Internet through intermediate business objects accessing external data stores—oftentimes not within the control of the application itself.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art in respect to database query operations and provide a novel and non-obvious method, system and computer program product for a multi-source search designer enabled to assemble a search widget configured to search multiple different data sources including external data sources. In an embodiment of the invention, a method for multi-source searching for a data driven application is provided. The method includes defining a form for a data driven application that includes user interface controls each corresponding to respectively to different fields in different data sources. The method also includes generating a search index for the form incorporating the different fields, coupling the form with a search user interface that includes a search control configured to accept at least one query term and associating the search control with a selection of the different fields. Thereafter, during execution of the data driven application, a search engine query can be directed for the selection of the different fields in the search index and not the different data sources according to the at least one query term provided in the search user interface.

In another embodiment of the invention, a multi-source search data processing system can be configured for multi-source searching for a data driven application. The system can include a host computer including memory and at least one processor and an application server executing in the host computer. A composition tool can be hosted by the application server and can define a form for a data driven application. The form can include different user interface controls each corresponding respectively to different fields in different data sources. The composition tool also can generate a search index for the form incorporating the different fields, and can couple the form with a search user interface that includes a search control configured to accept at least one query term. Finally, the composition tool can associate the search control with a selection of the different fields. The system yet further can include a search service that during execution of the data driven application in the application server, can direct a search engine query of the selection of the different fields in the search index and not the different data sources according to the at least one query term provided in the search user interface.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention provide for a multi-source search designer for a data driven application. In accordance with an embodiment of the invention, a search index can be generated from different data in different fields of different data sources over a computer communications network for a data driven application. At least one of the data sources can be a data source external to and unrelated to the data driven application. A search field can be disposed in a search user interface to a search engine for the data driven application and the search field can be configured to accept text input specifying different query terms. The search field can be additionally configured to apply a search of the query terms against different fields of the search index generated from correspondingly different fields of the different data sources, including the at least one external data source. In this way, the multiple different data sources can be incorporated in a single query without requiring the a priori joining of the different data sources.

In further illustration,FIG. 1pictorially shows a process for a multi-source searching for a data driven application. As shown inFIG. 1, an end user100can direct data operations (create, read, update and delete) in a data driven application110against data sourced from different data sources140,150including internal data sources140incorporated as part of the data driven application110, and external data sources150over a computer communications network120such as the Internet, that are both separate from and not part of the data driven application110. As the end user100directs data operations in the data driven application110, the data can be written to a search index130internal to and included as part of the data driven application110.

Thereafter, a search form160can be provided as part of the data driven application110through which different query terms searching different fields of the different data sources140,150. As searches are commanded in the search form160, query terms provided in the search form can be used by a search engine170to search not the different fields of the different data sources140,150, but corresponding fields in the search index130. In this way, the different data sources140,150can be subject to a search engine query without first requiring a join operation joining together the data sources140,150—particularly where a join is not possible for an external data source150.

The process described in connection withFIG. 1can be implemented within a multi-source search data processing system. In further illustration,FIG. 2schematically shows a multi-source search data processing system configured for multisource searching for a data driven application. The system can include a host computer200with at least one processor and memory. The host computer200can support the operation of an application server210hosting the execution of a composition tool220configured to compose a data driven application230such as an end user workflow. The data driven application230can include multiple different screens or forms240defined by the composition tool220. The forms240can reference different fields of different data sources290A,290B, including internal data sources290A and external data sources290B. Optionally, the external data sources290B can be rendered accessible through the instantiation of one or more different business objects270.

Importantly, as the data model for the data driven application230is defined during composition of the data driven application230by the composition tool220, a search index260can be created to include the different fields referenced in the forms240of the data driven application230. Further, during execution of the data driven application230, data operations for the different fields referenced in the forms240can be reflected in the search index260. In particular, the data operations can include any of create, read, update and delete operations. Subsequently, the data operations can be reflected in respective fields of corresponding ones of the data sources290A,290B, for example, during a batch mode updating of the data sources290A,290B.

Of note, a search user interface250A can be defined by the composition tool220as part of the data driven application230and can include one or more text controls into which one or more different query terms can be specified by an end user. The text controls can be linked to one or more fields of the search index260corresponding to fields in the data sources290A,290B. As such, a search service250B executing in the memory of the host computer200can process the query terms in searching the data sources290A,290B by searching the search index260. In this way, the different data sources290A,290B can be subject to a search engine query by the search service250B without first requiring a join operation joining together the data sources290A,290B—particularly where a join is not possible for an external data source290B.

In even yet further illustration,FIG. 3is a flow chart illustrating a process for multi-source searching for a data driven application. Beginning in block310, a new search user interface can be composed in a composition tool for composing data driven applications. In block320, a search term input control can be placed in the search user interface into which textual query terms can be provided. In block330, the input control can be associated with one or more different search fields of a search index, each of the search fields corresponding to a field in a data source and at least one of the search fields corresponding to a field in an external data source separate from the data driven application and optionally accessed through an intermediate business object. Thereafter, in block330the search user interface can be saved as part of the data driven application.

In block350, a form for the data driven application can be created by the composition tool and can include different form controls through which data operations can be directed against data in different fields of the different data sources. In block360, the saved search user interface can be coupled to the form so as to provide a search capability for one or more of the form controls. Finally, in block370, the form can be saved as part of the data driven application.