IP Library Granted Patent US 9,129,005
Granted Patent B2
US 9,129,005 · App. 13/272,040 · Granted Sep 8, 2015

Method and apparatus for searching a hierarchical database and an unstructured database with a single search query

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,129,005
App. No.
13/272,040
Granted
Sep 8, 2015
Kind
B2
Abstract

Techniques for searching a hierarchical database and an unstructured database with a single search query are described herein.

Claims (64)

1. A method of searching a hierarchical database and an inverted index, the method 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 the unique identifier identifies the virtual document, wherein the searching includes comparing the unstructured search string to text contained within each virtual document, and wherein a result of the inverted index search includes the unique identifiers of those of the virtual documents that contain text matching the complete unstructured search string; and for each of the virtual documents in the result,

generating a separate search query from the single search query by replacing the unstructured search string in the structured search query with the unique identifier identifying the virtual document, wherein the separate search query is different from the single search query and different from the structured search query, and

searching the hierarchical database according to the separate search query.

2. The method of claim 1 , wherein at least one unique identifier in the result corresponds to a virtual document that is associated to a first type of data in the hierarchical database, wherein the first type of data belongs to a first data domain, wherein at least one other unique identifier in the result corresponds to a different virtual document that is associated to a second type of data in the hierarchical database, and wherein the second type of data belongs to a different second data domain.

3. The method of claim 1 , wherein the hierarchical database has a tree structure and the unique identifiers in the result correspond to identifiers of nodes of the tree.

4. The method of claim 1 , wherein the hierarchical database includes collected information from across disparate information sources stored in a plurality of devices of a single LAN, wherein the collected information is organized by items of interest, and wherein the hierarchical database is not organized by documents located on the plurality of devices of the LAN.

5. The method of claim 1 , wherein the single search query is formed in response to a selection of at least one item returned as a result from a previous unstructured search, wherein the structured search query includes the item selected, and the unstructured search string within the structured search query corresponds to the previous unstructured search string query.

6. The method of claim 1 , wherein the hierarchical database has stored therein information regarding:

substantially all devices within a LAN,

a list of software installed on those devices, and

a list of users authorized to use those devices.

7. The method of claim 1 , further comprising: receiving data to be merged in the hierarchical database; and merging the received data with the data stored in the hierarchical database upon receiving

a single merge query that has syntax for inserting the received data into the hierarchical database and updating the data in the hierarchical database with the received data, wherein the received data is updated upon determining that the received data changes values of the data already stored in the hierarchical database.

8. The method of claim 1 , 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, wherein each node has a unique identifier, wherein the virtual documents are created by selectively generating the virtual documents from the one or more sub-trees, and wherein each of the virtual documents corresponds to one of the one or more sub-trees and includes all nodes of that sub-tree.

9. The method of claim 8 , wherein the virtual documents are selectively generated, at least in part by:

receiving inputs identifying points in the hierarchical database from which to generate the virtual documents, wherein each identified point in the hierarchical database represents sub-trees in the hierarchical database for a corresponding one of the virtual documents; and

for each of the virtual documents, in response to one of the identified points in the hierarchical database, sending queries to the hierarchical database to obtain the data for the virtual document from within the sub-trees in the hierarchical database represented by the identified point in the hierarchical database.

10. The method of claim 9 , wherein receiving inputs identifying points in the hierarchical database includes receiving user indications of points within a visual representation of the hierarchical database;

wherein each of the unique identifiers identifying the virtual documents comprises the one of identified points in the hierarchical database from which the virtual document was generated.

11. The method of claim 1 , 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 a tree root node of the hierarchal database, and wherein the FROM clause includes the unstructured search string.

12. The method of claim 1 , wherein the syntax for the single search query includes a first clause and a second clause;

wherein the first clause identifies a path in the hierarchical database starting at the tree root node;

wherein the second clause includes the unstructured search string; and

wherein extracting the unstructured search string from the single search query includes extracting the unstructured search string from the second clause of the of the single search query responsive to the syntax for the single search query.

13. A non-transitory computer-readable medium for searching a hierarchical database and an inverted index, the computer-readable medium comprising which, when implemented by one or more computers, cause the one or more computers to implement a method, the method 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 the unique identifier identifies the virtual document, wherein the searching includes comparing the unstructured search string to text contained within each virtual document, and wherein a result of the inverted index search includes the unique identifiers of those of the virtual documents that contain text matching the complete unstructured search string; and

for each of the virtual documents in the result,

generating a separate search query from the single search query by replacing the unstructured search string in the structured search query with the unique identifier identifying the virtual document, wherein the separate search query is different from the single search query and different from the structured search query, and

searching the hierarchical database according to the separate search query.

14. The computer-readable medium of claim 13 , wherein at least one unique identifier in the result corresponds to a virtual document that is associated to a first type of data in the hierarchical database, wherein the first type of data belongs to a first data domain, wherein at least one other unique identifier in the result corresponds to a different virtual document that is associated to a second type of data in the hierarchical database, and wherein the second type of data belongs to a different second data domain.

15. The computer-readable medium of claim 13 , wherein the hierarchical database has a tree structure and the unique identifiers in the result correspond to identifiers of nodes of the tree.

16. The computer-readable medium of claim 13 , wherein the hierarchical database includes collected information from across disparate information sources stored in a plurality of devices of a single LAN, wherein the collected information is organized by items of interest, and wherein the hierarchical database is not organized by documents located on the plurality of devices of the LAN.

17. The computer-readable medium of claim 13 ,wherein the single search query is formed in response to a selection of at least one item returned as a result from a previous unstructured search, wherein the structured search query includes the item selected, and the unstructured search string within the structured search query corresponds to the previous unstructured search string query.

18. The computer-readable medium of claim 13 , wherein the hierarchical database has stored therein information regarding:

substantially all devices within a LAN,

a list of software installed on those devices, and

a list of users authorized to use those devices.

19. The computer-readable medium of claim 13 , the method further comprising:

receiving data to be merged in the hierarchical database; and

merging the received data with the data stored in the hierarchical database upon receiving

a single merge query that has syntax for inserting the received data into the hierarchical database and updating the data in the hierarchical database with the received data, wherein the received data is updated upon determining that the received data changes values of the data already stored in the hierarchical database.

20. A system for searching a hierarchical database and an inverted index, the system comprising:

processing hardware; and

a memory comprising instructions which, when implemented by the processing hardware,

cause the processing hardware to implement a method, the method 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 the unique identifier identifies the virtual document, wherein the searching includes comparing the unstructured search string to text contained within each virtual document, and wherein a result of the inverted index search includes the unique identifiers of those of the virtual documents that contain text matching the complete unstructured search string; and

for each of the virtual documents in the result,

generating a separate search query from the single search query by replacing the unstructured search string in the structured search query with the unique identifier identifying the virtual document, wherein the separate search query is different from the single search query and different from the structured search query, and

searching the hierarchical database according to the separate search query.

21. The system of claim 20 , wherein at least one unique identifier in the result corresponds to a virtual document that is associated to a first type of data in the hierarchical database, wherein the first type of data belongs to a first data domain, wherein at least one other unique identifier in the result corresponds to a different virtual document that is associated to a second type of data in the hierarchical database, and wherein the second type of data belongs to a different second data domain.

22. The system of claim 20 , wherein the hierarchical database has a tree structure and the unique identifiers in the result correspond to identifiers of nodes of the tree.

23. The system of claim 20 , wherein the hierarchical database includes collected information from across disparate information sources stored in a plurality of devices of a single LAN, wherein the collected information is organized by items of interest, and wherein the hierarchical database is not organized by documents located on the plurality of devices of the LAN.

24. The system of claim 20 , wherein the single search query is formed in response to a selection of at least one item returned as a result from a previous unstructured search, wherein the structured search query includes the item selected, and the unstructured search string within the structured search query corresponds to the previous unstructured search string query.

25. The system of claim 20 , wherein the hierarchical database has stored therein information regarding:

substantially all devices within a LAN,

a list of software installed on those devices, and

a list of users authorized to use those devices.

Assignments (8)
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: CITRIX ONLINE, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 032339/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2012
From: WATERS, CHRISTOPHER
To: CITRIX ONLINE LLC
Reel/Frame 027515/0497 →