Searching by keywords and providing generalized matching capabilities on a
relational database is enabled by performing preprocessing operations to
construct inverted list lookup tables based on data record components at
an interim level of granularity, such as column location. Prefix
information is in the inverted list stored for each keyword, keyword
sub-string, or stemmed version of the keyword. A keyword search is
performed on the lookup tables rather than the database tables to
determine database column locations of the keyword. The lookup tables is
scanned to identify each prefix associated with the search term. Schema
information about the database is used to link the column locations to
form database subgraphs that span the keywords. Join tables are to
generated based on the subgraphs consisting of columns containing the
keywords. A query on the database is generated to join the tables and
retrieve database rows that contain the keyword and the prefixes
associated with the keyword. The retrieved rows are ranked in order of
relevance before being output. By preprocessing a relational database to
form lookup tables, and initially searching the lookup tables to obtain a
targeted subset of the database upon which SQL queries can be performed to
collect data records, keyword searching on relational database is made
efficient.
Recherchant par des mots-clés et fournissant des possibilités assorties généralisées sur une base de données relationnelle est permis en effectuant des opérations de prétraitement pour construire les tables inversées de consultation de liste basées sur des composants d'enregistrement à un niveau d'intérim de granularity, tel que l'endroit de colonne. L'information de préfixe est dans la liste inversée stockée pour chaque mot-clé, sous-chaîne de mot-clé, ou a refoulé la version du mot-clé. Une recherche par mot-clé est effectuée sur les tables de consultation plutôt que les tables de base de données pour déterminer des endroits de colonne de base de données du mot-clé. Les tables de consultation est balayées pour identifier chaque préfixe lié à la limite de recherche. Des informations de schéma sur la base de données sont employées pour lier les endroits de colonne pour former les sous-graphes de base de données qui enjambent les mots-clés. Joignez les tables sont à produit basé sur les sous-graphes se composant des colonnes contenant les mots-clés. Une question sur la base de données est produite pour joindre les tables et pour rechercher les rangées de base de données qui contiennent le mot-clé et les préfixes liés au mot-clé. Les rangées recherchées sont rangées par ordre d'importance avant d'être produite. En prétraitant une base de données relationnelle pour former des tables de consultation, et en recherchant au commencement les tables de consultation pour obtenir un sous-ensemble visé de la base de données sur laquelle le SQL questionne peut être exécutée pour rassembler des enregistrements, mot-clé recherchant sur la base de données relationnelle est rendue efficace.