DOMAIN BASED KEYWORD SEARCH
First Claim
1. A computer-implemented method of performing a keyword search on a database, comprising:
- receiving a request including a search string for searching the database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns;
parsing the search string to identify a plurality of keywords included in the search string;
generating a plurality of string permutations based on the received search string, each string permutation being database agnostic and including at least a subset of the plurality of keywords included in the received search string;
for each string permutation;
launching an asynchronous thread for executing a search on the one or more compressed tokenized data segments based on the string permutation;
receiving a plurality of search results when the thread completes execution of the search, each search result identifying a row in the database that includes data relevant to the string permutation,computing a result relevance score associated with each search result as a measure of relevance between the search result and the received search string, andcollecting the plurality of search results in an ordered queue, the ordering of the search results based on the result relevance score associated with each search result; and
retrieving data from rows in the database identified by a subset of the search results collected in the ordered queue for display in response to the request.
8 Assignments
0 Petitions
Accused Products
Abstract
A database keyword search technique that relies on a domain based storage infrastructure is disclosed. In operation, a keyword search string is processed to generate a set of search string permutations. Each string permutation specifies a different ordering of one or more portions of the search string. A domain based search process is then executed asynchronously for each string permutation. Each execution generates a search result set that identifies rows in the database that include data relevant to the string permutation. The results in each result set are scored and ranked based in part on the similarity between the string permutation and the search string provided by the user. The rankings determine which of the results are to be presented to the user.
13 Citations
20 Claims
-
1. A computer-implemented method of performing a keyword search on a database, comprising:
-
receiving a request including a search string for searching the database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns; parsing the search string to identify a plurality of keywords included in the search string; generating a plurality of string permutations based on the received search string, each string permutation being database agnostic and including at least a subset of the plurality of keywords included in the received search string; for each string permutation; launching an asynchronous thread for executing a search on the one or more compressed tokenized data segments based on the string permutation; receiving a plurality of search results when the thread completes execution of the search, each search result identifying a row in the database that includes data relevant to the string permutation, computing a result relevance score associated with each search result as a measure of relevance between the search result and the received search string, and collecting the plurality of search results in an ordered queue, the ordering of the search results based on the result relevance score associated with each search result; and retrieving data from rows in the database identified by a subset of the search results collected in the ordered queue for display in response to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product having a non-transitory computer readable storage medium storing executable code for performing a keyword search on a database, the code when executed performs steps comprising:
-
receiving a request including a search string for searching the database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns; parsing the search string to identify a plurality of keywords included in the search string; generating a plurality of string permutations based on the received search string, each string permutation being database agnostic and including at least a subset of the plurality of keywords included in the received search string; for each string permutation; launching an asynchronous thread for executing a search on the one or more compressed tokenized data segments based on the string permutation; receiving a plurality of search results when the thread completes execution of the search, each search result identifying a row in the database that includes data relevant to the string permutation, computing a result relevance score associated with each search result as a measure of relevance between the search result and the received search string, and collecting the plurality of search results in an ordered queue, the ordering of the search results based on the result relevance score associated with each search result; and retrieving data from rows in the database identified by a subset of the search results collected in the ordered queue for display in response to the request. - View Dependent Claims (11, 12, 13, 14, 16, 17, 18)
-
-
15. The computer program product of claim 15, wherein one or more search results included in a second plurality of search results received when the second thread completes the execution are selected for display after data from rows identified by the subset of the search results is displayed.
-
19. A computer system, comprising:
-
a database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns; and a search orchestration engine executing on a computer processor and configured to; receive a request including a query for searching the database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns, the received query comprising a plurality of keywords; generate a plurality of string permutations based on the received query, each string permutation being database agnostic and including at least a subset of the plurality of keywords included in the received query; for each string permutation; launch an asynchronous thread for executing a search on the one or more compressed tokenized data segments based on the string permutation; receive a plurality of search results when the thread completes execution of the search, each search result identifying a row in the database that includes data relevant to the string permutation, compute a result relevance score associated with each search result as a measure of relevance between the search result and the received query, and collect the plurality of search results in an ordered queue, the ordering of the search results based on the result relevance score associated with each search result; and retrieve data from rows in the database identified by a subset of the search results collected in the ordered queue for display in response to the request. - View Dependent Claims (20)
-
Specification