System and method of joining data obtained from horizontally and vertically partitioned heterogeneous data stores using string-based location transparent search expressions
First Claim
1. A method for performing a search of a virtual repository formed from a plurality of repositories, each repository of the virtual repository being associated with a separate database system, the method comprising:
- receiving a string-based search expression;
generating an expression tree of nodes based on the string-based search expression, one or more of the nodes of the expression tree being an attribute node, each attribute node corresponding to an attribute included in the string-based search expression;
adding repository-location information to the expression tree by associating metadata with each attribute node in the expression tree, the metadata associated with a given attribute node identifying one or more repositories of the virtual repository that support the attribute represented by that attribute node;
generating, for each repository identified by the metadata associated with the one or more attribute nodes, a query expression specifically for that repository; and
determining whether sub-trees of a particular node of the expression tree have attribute nodes associated with metadata identifying different types of repositories, and, if the metadata associated with the attribute nodes identify different types of repositories, constructing the particular node as a federation node for merging search results returned by the child sub-trees;
searching each repository identified by the metadata associated with the one or more attribute nodes using the query expression specifically generated for that repository.
1 Assignment
0 Petitions
Accused Products
Abstract
Described are a system and method for accepting a string-based search expression, parsing the search expression into an expression tree, distributing the tree (or portion thereof) across heterogeneous repositories, and merging the results. The system is data-location transparent, encapsulates a federation model within query nodes and query trees. A client application produces and issues the search expression to the system. One type of expression tree node is an attribute node corresponding to an attribute included in the search expression. Metadata is associated with the attribute node for identifying each repository that supports the attribute represented by that attribute node. A call passes to the expression tree to perform the search, which occurs in a recursive-descent traversal of the tree. The search completes in a single tree traversal. Sub-trees receive a relevant portion of the search expression to translate into a query expression specific for each type of searched repository.
-
Citations
17 Claims
-
1. A method for performing a search of a virtual repository formed from a plurality of repositories, each repository of the virtual repository being associated with a separate database system, the method comprising:
-
receiving a string-based search expression; generating an expression tree of nodes based on the string-based search expression, one or more of the nodes of the expression tree being an attribute node, each attribute node corresponding to an attribute included in the string-based search expression; adding repository-location information to the expression tree by associating metadata with each attribute node in the expression tree, the metadata associated with a given attribute node identifying one or more repositories of the virtual repository that support the attribute represented by that attribute node; generating, for each repository identified by the metadata associated with the one or more attribute nodes, a query expression specifically for that repository; and determining whether sub-trees of a particular node of the expression tree have attribute nodes associated with metadata identifying different types of repositories, and, if the metadata associated with the attribute nodes identify different types of repositories, constructing the particular node as a federation node for merging search results returned by the child sub-trees; searching each repository identified by the metadata associated with the one or more attribute nodes using the query expression specifically generated for that repository. - View Dependent Claims (2, 3, 4, 5, 6, 7, 15, 16, 17)
-
-
8. A server system for performing a search of a virtual repository formed from a plurality of repositories, each repository of the virtual repository being associated with a separate database system, the server system comprising a server computer having:
-
a query processor apparatus receiving from a client computer having an initiator a string-based search expression, the query processor apparatus including a parser for generating an expression tree of nodes based on the string-based search expression, one or more of the nodes of the expression tree being an attribute node, each attribute node corresponding to an attribute included in the string-based search expression, the parser adding repository-location information to the expression tree by associating each attribute node with metadata to identify the repositories of the virtual repository that support the one or more attributes included in the search expression, each repository of a plurality of repositories being identified by the metadata associated with the one or more attribute nodes; one or more repository adapters generating, for each repository identified by the metadata associated with the one or more attribute nodes, a query expression specifically for that repository based on the string-based search expression; and wherein the parser determines whether sub-trees of a particular node of the expression tree have attribute nodes associated with metadata identifying different types of repositories, and, if the metadata associated with the attribute nodes identify different types of repositories, constructs the particular node as a federation node for merging search results obtained by the sub-trees, and searching each repository identified by the metadata associated with the one or more attribute nodes using the query expression specifically generated for that repository, wherein the query processor apparatus returns a search result to the initiator of the string-based search expression. - View Dependent Claims (9, 10, 11)
-
-
12. A computer program product for use with a computer system to perform a search of a virtual repository formed from a plurality of repositories, each repository of the virtual repository being associated with a separate database system, the computer program product comprising a computer useable medium having embodied therein program code comprising:
-
program code for receiving a string-based search expression; program code for generating an expression tree of nodes based on the string-based search expression, one or more of the nodes of the expression tree being an attribute node, each attribute node corresponding to an attribute included in the string-based search expression; and program code for adding repository-location information to the expression tree by associating metadata with each attribute node in the expression tree, the metadata associated with a given attribute node identifying one or more repositories that support the attribute represented by that attribute node, each repository of the plurality of repositories being identified by the metadata associated with the one or more attribute nodes; program code for generating for each repository identified by the metadata associated with the one or more attribute nodes a query expression specifically for that repository based on the string-based search expression; program code for searching each repository identified by the metadata associated with the one or more attribute nodes using the query expression specifically generated for that repository and program code for determining whether sub-trees of a particular node of the expression tree have attribute nodes associated with metadata identifying different sets of repositories, and, if the metadata associated with the attribute nodes identify different sets of repositories, program code for constructing the particular node as a federation node to merge search results returned by the sub-trees. - View Dependent Claims (13, 14)
-
Specification