Method and apparatus for searching a hierarchical database and an unstructured database with a single search query
First Claim
1. A method of searching a hierarchical database and an inverted index, comprising:
- receiving a single search query that has syntax identifying an unstructured search string within a structured search query to automatically cause a search of the inverted index and use of the result to automatically search the hierarchical database;
extracting the unstructured search string from the single search query;
searching the inverted index according to the unstructured search string, wherein the inverted index includes virtual documents created from data stored in the hierarchical database, wherein each virtual document includes a unique identifier from the hierarchical database used to designate the data in the hierarchical database from which that virtual document was created, wherein a result of the inverted index search includes the unique identifiers of the virtual documents that meet the search; and
generating, for each of the unique identifiers in the result, a separate search query from the single search query by replacing the unstructured search string in the structured search query with that unique identifier,searching the hierarchical database according to the separate search query;
wherein the hierarchical database includes one or more sub-trees branching from a tree root node, wherein each sub-tree includes one or more nodes starting at a sub-tree root node, and wherein each node has a unique identifier, and wherein creating the virtual documents includes selectively generating the virtual documents from the one or more sub-trees, wherein each of the virtual documents corresponds to one of the one or more sub-trees and includes all nodes of that sub-tree; and
wherein the syntax for the single search query includes a SELECT clause and a FROM clause, wherein the SELECT clause includes syntax to identify a path in the hierarchical database starting at the tree root node, and wherein the FROM clause includes the unstructured search string.
10 Assignments
0 Petitions
Accused Products
Abstract
Techniques for searching a hierarchical database and an unstructured database with a single search query are described herein. In one embodiment, a single search query is received that has syntax identifying an unstructured search string within a structured search query to automatically cause a search of the inverted index and use of the result to automatically search the hierarchical database. The unstructured search string is extracted from the single search query and an inverted index is searched according to the unstructured search string, wherein the inverted index includes virtual documents created from data stored in the hierarchical database, wherein each virtual document includes a unique identifier from the hierarchical database used to designate the data in the hierarchical database from which that virtual document was created, wherein a result of the inverted index search includes the unique identifiers of the virtual documents that meet the search. For each of the unique identifiers in the result, a separate search query is generated from the single search query by replacing the unstructured search string in the structured search query with that unique identifier and the hierarchical database is searched according to the separate search query. Other methods and apparatuses are also described.
53 Citations
20 Claims
-
1. A method of searching a hierarchical database and an inverted index, comprising:
-
receiving a single search query that has syntax identifying an unstructured search string within a structured search query to automatically cause a search of the inverted index and use of the result to automatically search the hierarchical database; extracting the unstructured search string from the single search query; searching the inverted index according to the unstructured search string, wherein the inverted index includes virtual documents created from data stored in the hierarchical database, wherein each virtual document includes a unique identifier from the hierarchical database used to designate the data in the hierarchical database from which that virtual document was created, wherein a result of the inverted index search includes the unique identifiers of the virtual documents that meet the search; and generating, for each of the unique identifiers in the result, a separate search query from the single search query by replacing the unstructured search string in the structured search query with that unique identifier, searching the hierarchical database according to the separate search query; wherein the hierarchical database includes one or more sub-trees branching from a tree root node, wherein each sub-tree includes one or more nodes starting at a sub-tree root node, and wherein each node has a unique identifier, and wherein creating the virtual documents includes selectively generating the virtual documents from the one or more sub-trees, wherein each of the virtual documents corresponds to one of the one or more sub-trees and includes all nodes of that sub-tree; and wherein the syntax for the single search query includes a SELECT clause and a FROM clause, wherein the SELECT clause includes syntax to identify a path in the hierarchical database starting at the tree root node, and wherein the FROM clause includes the unstructured search string. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A search database system, comprising:
-
a hierarchical database to store a set of data in a hierarchical manner, wherein each of a plurality of points in the hierarchy has a unique identifier; a hierarchical database engine coupled with the hierarchical database, the hierarchical database engine to search the set of data stored in the hierarchical database; a document generator coupled with the hierarchical database engine, the document generator to create a different document from the data stored under each of the plurality of points in the hierarchical database; an inverted index; an inverted index engine coupled with the document generator, the inverted index engine to index each document and the associated unique identifiers in the inverted index, and search the inverted index; a search server user interface, coupled with the hierarchical database engine and the inverted index engine, the search server user interface to receive a single search query that has syntax identifying an unstructured search string within a structured search query to automatically cause a search of the inverted index and use of the result to automatically search the hierarchical database, the search server user interface including; a parser to extract the unstructured search string from the single search query and forward the extracted unstructured search string to the inverted index engine to cause a search of the inverted index; a structured query generator to receive a result of the inverted index search that includes the one or more unique identifiers of the documents that meet the search, and for each of the unique identifiers in the result, to generate a separate search query from the single search query by replacing the unstructured search string in the structured search query with that unique identifier, and forward the separate search query to the hierarchical database engine to cause a search of the hierarchical database according to the separate search query; wherein the hierarchical database includes one or more sub-trees branching from a tree root node, wherein each sub-tree includes one or more nodes starting at a sub-tree root node and includes at least one value, and wherein the unique identifier associated with each of the plurality of documents corresponds to the sub-tree root node; wherein each node existing directly below the tree root node represents a private sub-tree, wherein values and node information in the private sub-tree are private to an organization; and wherein the syntax for the single search query includes a SELECT clause and a FROM clause, wherein the SELECT clause includes syntax to identify a path in the hierarchical database starting at the tree root node, and wherein the FROM clause includes the unstructured search string. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification