Keyword Searching On Database Views
First Claim
Patent Images
1. Computer readable storage media having computer readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:
- receiving a Boolean keyword search query for searching a view of a database, wherein the view is a virtual table that is not materialized that is generated by virtually joining one or more base relations stored in the database, wherein the view includes one or more text columns such that each text column is contained in a base relation of the view, wherein the keyword search query comprises a plurality of keywords connected by one or more Boolean operators;
executing a keyword search on each of the multiple text columns, wherein the executing the keyword search on each of the multiple text columns is based on the keyword query;
returning one or more highest scoring view tuples whose text column values together satisfy the Boolean expression on the keywords, wherein a relevancy score determined for each view tuple is based at least in part on a composition of keyword search scores of the text column values;
outputting results of the keyword search on each of the text columns, wherein the results include, for each base tuple, a tuple identifier, the relevancy score and a bit vector, wherein the bit vector is representative of which keywords from the query were located in the searched text column, wherein the bit vector for each result has a number of bit locations equal to a number and order of keywords contained in the keyword query;
storing the output results of the keyword search for each of the text columns in a plurality of buckets defined according to the bit vectors for each text column so that the output results are ordered according to the buckets;
identifying, for each bucket, a highest relevancy score from among the results stored in each bucket;
scheduling one or more buckets for processing by selecting buckets having a tuple with a highest relevancy score first in order to identify tuples most relevant to the keyword query as quickly as possible;
translating base tuples in the bucket being processed to determine corresponding view tuples in which the base tuples participate;
determining relevancy scores of those corresponding view tuples;
computing the bit vector of each view tuple from the bit vectors of the keyword search results for each text column;
filtering out view tuples that do not satisfy the Boolean expression on the keywords;
andterminating processing of the buckets prior to processing all the buckets, and returning one or more view tuples in response to the keyword query when a total relevancy score of one or more view tuples in one or more processed buckets is determined to be greater than a possible maximum relevancy score of view tuples corresponding to buckets yet to be processed.
2 Assignments
0 Petitions
Accused Products
Abstract
A keyword search is executed on a view of a database based on a Boolean keyword query. The view includes multiple text columns, and the keyword search is executed on each of the multiple text columns in the view. The output results from the keyword search on each of the text columns include tuple identifiers of one or more relevant tuples and a relevancy score for ranking the results of the keyword query.
79 Citations
20 Claims
-
1. Computer readable storage media having computer readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:
-
receiving a Boolean keyword search query for searching a view of a database, wherein the view is a virtual table that is not materialized that is generated by virtually joining one or more base relations stored in the database, wherein the view includes one or more text columns such that each text column is contained in a base relation of the view, wherein the keyword search query comprises a plurality of keywords connected by one or more Boolean operators; executing a keyword search on each of the multiple text columns, wherein the executing the keyword search on each of the multiple text columns is based on the keyword query; returning one or more highest scoring view tuples whose text column values together satisfy the Boolean expression on the keywords, wherein a relevancy score determined for each view tuple is based at least in part on a composition of keyword search scores of the text column values; outputting results of the keyword search on each of the text columns, wherein the results include, for each base tuple, a tuple identifier, the relevancy score and a bit vector, wherein the bit vector is representative of which keywords from the query were located in the searched text column, wherein the bit vector for each result has a number of bit locations equal to a number and order of keywords contained in the keyword query; storing the output results of the keyword search for each of the text columns in a plurality of buckets defined according to the bit vectors for each text column so that the output results are ordered according to the buckets; identifying, for each bucket, a highest relevancy score from among the results stored in each bucket; scheduling one or more buckets for processing by selecting buckets having a tuple with a highest relevancy score first in order to identify tuples most relevant to the keyword query as quickly as possible; translating base tuples in the bucket being processed to determine corresponding view tuples in which the base tuples participate; determining relevancy scores of those corresponding view tuples; computing the bit vector of each view tuple from the bit vectors of the keyword search results for each text column; filtering out view tuples that do not satisfy the Boolean expression on the keywords; and terminating processing of the buckets prior to processing all the buckets, and returning one or more view tuples in response to the keyword query when a total relevancy score of one or more view tuples in one or more processed buckets is determined to be greater than a possible maximum relevancy score of view tuples corresponding to buckets yet to be processed.
-
-
2. A method implemented by one or more processors executing instructions stored in computer-readable media, the method comprising:
-
receiving a keyword query for executing a keyword search on a view of a database, wherein the view includes multiple text columns of data; executing the keyword search on each of the multiple text columns based on the keyword query, the keyword query comprising multiple keywords combined with one or more Boolean operators; outputting results of the keyword search on each of the text columns, wherein the output results include a tuple identifier and a ranking for each base tuple in the results; and identifying one or more highest-ranked view tuples that satisfies the Boolean expression on keywords in response to the keyword query. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
a database; one or more processors coupled to the database and coupled to computer readable storage media storing instructions for configuring the one or more processors, wherein the one or more processors are configured to receive a keyword search query comprising multiple keywords and one or more Boolean operators for searching a view, wherein the view is a virtual table comprised of multiple text columns from one or more identified base relations in the database, wherein the one or more processors are configured to perform a keyword search on the view by conducting a keyword search on each of the multiple text columns by determining whether each of the keywords included in the query is included in each text column, and wherein the one or more processors are configured to output results of the keyword search conducted on each of the text columns, wherein the results include, for each base tuple, a tuple identifier and a bit vector, wherein the bit vector is representative of which keywords from the query are located in the searched text column. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification