US2015026153A1PendingUtilityA1

Search engine for information retrieval system

Assignee: THOUGHTSPOT INCPriority: Jul 17, 2013Filed: Apr 14, 2014Published: Jan 22, 2015
Est. expiryJul 17, 2033(~7 yrs left)· nominal 20-yr term from priority
G06F 16/38G06F 16/90324G06F 16/3334G06F 16/24522G06F 16/243G06F 16/2272G06F 16/3329G06N 5/04G06F 16/2423G06F 17/30864G06F 17/30336G06F 16/22G06F 16/951
55
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A search engine performs semantic analysis of unstructured search terms to generate relational database queries. By understanding the semantics, the search engine more effectively identifies and predicts what information the user is searching for and provides more in-depth user assistance. The search engine uses different ranking schemes to identify which data is most likely associated with search terms and provides both row level and object level data security. The search engine may identify ambiguous search requests and allows the user to select different join paths that create different mappings between the data. The search engine may generate worksheets containing the selected mappings.

Claims

exact text as granted — not AI-modified
1 . A method, comprising:
 identifying, by a computing device, data items in a relational database;   generating, by the computing device, tokens representing the data items in the relational database;   generating, by the computing device, indexes containing the tokens;   receiving, by the computing device, a search term from a user interface;   comparing, by the computing device, the search term with the tokens in the indexes; and   selecting, by the computing device, the tokens for displaying in the user interface based on the comparison of the tokens with the search term.   
     
     
         2 . The method of  claim 1 , further comprising:
 identifying, by the processing device, a current state of the search term;   predicting, by the processing device, a next token for adding to the search term, based on the current state of the search term; and   displaying, by the processing device, the next token in the user interface.   
     
     
         3 . The method of  claim 1 , further comprising:
 identifying, by the processing device, at least one current token that currently exists in the search term;   identifying, by the processing device, the current token as an attribute token, a measure token, or a value token;   predicting, by the processing device, a next token for adding to the search term based on the current token being the attribute token, the measure token, or value token; and   displaying, by the processing device, the next token in the user interface.   
     
     
         4 . The method of  claim 1 , further comprising:
 identifying, by the computing device, token scores for the tokens;   ranking, by the computing device, the tokens based on the associated token scores; and   displaying, by the computing device, the tokens based on the ranking.   
     
     
         5 . The method of  claim 4 , further comprising generating, by the computing device, the token scores based on usage of single tokens or on usage of a combination of the tokens. 
     
     
         6 . The method of  claim 1 , further comprising:
 identifying, by the computing device, token scores for the tokens in the indexes;   assigning, by the computing device, branch scores for branches in the indexes based on the token scores for the tokens in the branches;   parsing, by the computing device, down the branches in the indexes based on portions of the search term matching the tokens and the branch scores for the branches.   
     
     
         7 . The method of  claim 1 , further comprising:
 generating, by the processing device, priority queues for the indexes, wherein the priority queues rank the tokens based on associated token scores; and   displaying, by the processing device, the tokens based on the rank of the tokens in the priority queues.   
     
     
         8 . The method of  claim 1 , further comprising:
 identifying, by the processing device, token scores for the tokens;   identifying, by the processing device, types of the indexes containing the tokens;   weighting, by the processing device, the token scores based on the types of the indexes containing the tokens;   displaying, by the processing device, the tokens based on the weighting of the token scores.   
     
     
         9 . The method of  claim 8 , further comprising:
 identifying, by the processing device, a first one of the indexes as a global index for an enterprise;   identifying, by the processing device, a second one of the indexes as a department index associated with a department within the enterprise;   weighting, by the processing device, the token scores for the tokens in the department index higher than the token scores for the tokens in the global index.   
     
     
         10 . The method of  claim 9 , further comprising:
 identifying, by the processing device, a third one of the indexes as a user index associated with an enterprise user; and   weighting, by the processing device, the token scores for the tokens identified in the user index higher than the token scores for the tokens identified in the global index or the tokens identified in the department index.   
     
     
         11 . The method of  claim 1 , further comprising:
 generating, by the processing device, indexes that contain prefixes and/or suffixes of the tokens;   identifying, by the computing device, the prefixes and/or suffixes that at least partially match the search term; and   displaying, by the computing device, the tokens associated with the identified prefixes or suffixes.   
     
     
         12 . The method of  claim 1 , further comprising:
 identifying, by the computing device, tables in the relational database associated with the search term;   identifying, by the computing device, different join paths between the tables;   displaying, by the computing device, the different join paths to the user;   identifying, by the computing device, the join paths selected by the user; and   displaying, by the computing device, data from the tables based on the join paths selected by the user.   
     
     
         13 . The method of  claim 1 , further comprising:
 identifying, by the computing device, new data items added to the relational database;   generating, by the computing device, new tokens representing the new data items in the relational database;   generating, by the computing device, incremental indexes containing the new tokens;   comparing, by the computing device, the search term with the tokens in the indexes and the new tokens in the incremental indexes; and   displaying, by the computing device, the tokens in the indexes and the new tokens in the incremental indexes that at least partially match the search term.   
     
     
         14 . The method of  claim 1 , further comprising:
 distributing, by the computing device, different portions of the indexes in different data servers;   comparing, by the computing device, the search term with the tokens in the different portions of the indexes in the different data servers; and   displaying the tokens in the different portions of the indexes in the different data servers that at least partially match the search term.   
     
     
         15 . An apparatus, comprising:
 a processing system configured to:   identify content in a database system;   generate tokens based on the content in the database system;   identify security values associated with the tokens;   receive a search term;   identify at least some of the tokens as candidate tokens based on the search terms; and   display the candidate tokens based on the associated security values.   
     
     
         16 . The apparatus of  claim 11 , wherein the processing system is further configured to:
 identify token security bitmasks associated with the tokens;   identify a user security bitmask for a user entering the search term;   display the candidate tokens based on a comparison of the associated token security bitmasks with the user security bitmask.   
     
     
         17 . The apparatus of  claim 16 , wherein the processing system is further configured to:
 identify a geographic region bit in the token security bitmasks and the user security bitmask;   display the candidate tokens based a comparison of the geographic region bit in the associated token security bitmasks with the geographic region bit in the user security bitmask.   
     
     
         18 . The apparatus of  claim 16 , wherein the processing system is further configured to:
 identify a department bit in the token security bitmasks and the user security bitmask; and   display the candidate tokens based on a comparison of the department bit in the associated token security bitmasks with the department bit in the user security bitmask.   
     
     
         19 . The apparatus of  claim 16 , wherein the processing system is further configured to:
 identify an amount limit bit in the token security bitmasks and the user security bitmask associated with a limit on an amount or size;   display the candidate tokens based on a comparison of the amount limit bit in the token security bitmasks with the amount limit bit in the user security bitmask.   
     
     
         20 . The apparatus of  claim 15 , wherein the processing system is further configured to:
 generate indexes for the tokens;   identify token security bitmasks for the tokens in the indexes;   assign branch security bitmasks to branches in the indexes based on the token security bitmasks for the tokens in the branches;   identify a user security bitmask for a user entering the search term;   search the branches of the indexes for the candidate tokens based on a comparison of the branch security bitmasks with the user security bitmask.   
     
     
         21 . An apparatus, comprising:
 indexes containing tokens associated with data in a relational database, wherein the tokens have associated token categories; and   a state machine configured to:   receive a search input;   identify the tokens associated with the search input; and   display some of the identified tokens based on the associated token categories.   
     
     
         22 . The apparatus of  claim 21 , wherein the token categories comprise an attribute category, a measure category, and a value category. 
     
     
         23 . The apparatus of  claim 21 , wherein the state machine is further configured to generate error or help messages based on the token categories for the tokens matching a current portion of the search input and the token categories for tokens matching a newly added portion of the search input. 
     
     
         24 . The apparatus of  claim 21 , wherein the state machine is further configured to predict an additional search input based on the token categories associated with a selected one of the displayed tokens. 
     
     
         25 . The apparatus of  claim 24 , wherein the state machine is further configured to display the tokens associated with the additional search input based on rankings of the tokens in the indexes. 
     
     
         26 . The apparatus of  claim 21 , wherein the state machine is further configured to:
 identify a first segment of the search term associated with first group of the data in the relational database;   generate a first query instruction accessing and displaying the first group of the data;   identify a second segment of the search term associated with a second sub-group of data within the first group of data in the relational database;   generate a second query instruction for displaying the second sub-group of data.   
     
     
         27 . A method, comprising:
 receiving, by a computing device, search terms;   identifying, by the computing device, tables associated with the search terms;   identifying, by the computing device, join paths between the tables;   displaying, by the computing device, the join paths;   receiving, by the computing device, inputs selecting the join paths; and   displaying, by the computing device, data from the tables associated with the selected join paths.   
     
     
         28 . The method of  claim 27 , further comprising:
 displaying, by the computing device, names of columns in the tables associated with the join paths; and   identifying, by the computing device, the names of the columns selected by the inputs; and   displaying, by the computing device, data from the columns with the selected names.   
     
     
         29 . The method of  claim 28 , further comprising:
 ranking, by the computing device, the columns; and   displaying, by the computing device, the names of the columns entries based on the ranking.   
     
     
         30 . The method of  claim 29 , further comprising:
 identifying, by the computing device, the join paths associated with the columns as direct links or indirect links to a root table associated with the search terms; and   ranking, by the computing device, the columns based on the associated join paths being identified as the direct links or the indirect links.   
     
     
         31 . The method of  claim 27 , further comprising:
 identifying, by the computing device, additional tables having no join paths with the previously identified tables;   displaying, by the computing device, additional join paths between the additional tables and the previously identified tables;   linking, by the computing device, the additional tables to the previously identified tables in response to user selections of the additional join paths.   
     
     
         32 . The method of  claim 27 , further comprising generating, by the processing device, a worksheet table containing the data from the tables associated with the selected join paths. 
     
     
         33 . The method of  claim 27 , further comprising linking, by the processing device, the worksheet table to indexes associated with tables. 
     
     
         34 . The method of  claim 33 , further comprising assigning, by the processing device, a worksheet bitmap to the indexes identifying branches of the indexes associated with the worksheet table. 
     
     
         35 . The method of  claim 33 , further comprising assigning, by the computing device, row and object level security access to the worksheet table. 
     
     
         36 . The method of  claim 27 , further comprising:
 identifying, by the processing device, arithmetic operations associated with the search terms;   identifying, by the processing device, columns in different tables associated with the arithmetic operations; and   performing, by the processing device, the arithmetic operations on the data contained in the columns of the different tables.

Join the waitlist — get patent alerts

Track US2015026153A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.