Recherche sémantique (SQL Server)

La recherche sémantique statistique fournit des informations approfondies sur les documents non structurés stockés dans des bases de données SQL Server en extrayant et en indexant des expressions clés pertinentes d’un point de vue statistique. Elle utilise également ces expressions clés pour identifier et indexer des documents similaires ou connexes.

Vous pouvez interroger ces index sémantiques à l'aide de trois fonctions d'ensemble de lignes Transact-SQL pour récupérer les résultats sous forme de données structurées.

À quoi sert une recherche sémantique ?

La recherche sémantique s’appuie sur la fonctionnalité de recherche en texte intégral existante dans SQL Server, mais permet de nouveaux scénarios qui s’étendent au-delà des recherches mot clé. Tandis que la recherche en texte intégral vous permet d’interroger des mots dans un document, la recherche sémantique porte sur la signification du document. Les solutions désormais possibles incluent l'extraction automatique de balises, la découverte de contenu connexe et la navigation hiérarchique à travers du contenu similaire. Par exemple, vous pouvez interroger l'index d'expressions clés afin de générer la taxonomie d'une organisation ou d'un corpus de documents. Ou encore interroger l'index de ressemblance de document pour identifier des curriculum vitae qui correspondent à une description de poste.

Les exemples qui suivent illustrent les fonctions de la recherche sémantique.

Rechercher les expressions clés dans un document

La requête suivante obtient les expressions clés qui ont été identifiées dans le document témoin. Elle présente les résultats par ordre décroissant du score qui indique l'importance statistique de chaque expression clé. Cette requête appelle la fonction semantickeyphrasetable (Transact-SQL).

SET @Title = 'Sample Document.docx'  
  
SELECT @DocID = DocumentID  
    FROM Documents  
    WHERE DocumentTitle = @Title  
  
SELECT @Title AS Title, keyphrase, score  
    FROM SEMANTICKEYPHRASETABLE(Documents, *, @DocID)  
    ORDER BY score DESC  
  

Rechercher des documents similaires ou connexes

La requête suivante obtient les documents qui ont été identifiés comme similaires ou en rapport avec le document témoin. Elle présente les résultats par ordre décroissant du score qui indique la similarité des deux documents. Cette requête appelle la fonction semanticsimilaritytable (Transact-SQL).

SET @Title = 'Sample Document.docx'  
  
SELECT @DocID = DocumentID  
    FROM Documents  
    WHERE DocumentTitle = @Title  
  
SELECT @Title AS SourceTitle, DocumentTitle AS MatchedTitle,  
        DocumentID, score  
    FROM SEMANTICSIMILARITYTABLE(Documents, *, @DocID)  
    INNER JOIN Documents ON DocumentID = matched_document_key  
    ORDER BY score DESC  
  

Rechercher les expressions clés qui rendent des documents similaires ou connexes

La requête suivante obtient les expressions clés qui rendent les deux documents témoin similaires ou en rapport avec un autre. Elle présente les résultats par ordre décroissant du score qui indique le poids de chaque expression clé. Cette requête appelle la fonction semanticsimilaritydetailstable (Transact-SQL).

SET @SourceTitle = 'first.docx'  
SET @MatchedTitle = 'second.docx'  
  
SELECT @SourceDocID = DocumentID FROM Documents WHERE DocumentTitle = @SourceTitle  
SELECT @MatchedDocID = DocumentID FROM Documents WHERE DocumentTitle = @MatchedTitle  
  
SELECT @SourceTitle AS SourceTitle, @MatchedTitle AS MatchedTitle, keyphrase, score  
    FROM semanticsimilaritydetailstable(Documents, DocumentContent,  
        @SourceDocID, DocumentContent, @MatchedDocID)  
    ORDER BY score DESC  
  

Stockage de documents dans SQL Server

Avant de pouvoir indexer des documents avec la recherche sémantique, vous devez stocker les documents dans une base de données SQL Server.

La fonctionnalité FileTable dans SQL Server 2014 fait des fichiers et documents non structurés des citoyens de première classe de la base de données relationnelle. Par conséquent, les développeurs de base de données peuvent manipuler des documents avec des données structurées dans les opérations reposant sur des ensembles Transact-SQL.

Pour plus d’informations sur la fonctionnalité FileTable, consultez FileTables (SQL Server). Pour plus d’informations sur la fonctionnalité FILESTREAM, qui est une autre option de stockage de documents dans la base de données, consultez FILESTREAM (SQL Server).

Tâches associées

Installer et configurer la recherche sémantique
Décrit les conditions préalables à une recherche sémantique statistique, ainsi que la procédure d'installation ou de vérification de ces conditions.

Activer la recherche sémantique sur les tables et les colonnes
Décrit la procédure d'activation ou de désactivation de l'indexation sémantique statistique sur des colonnes sélectionnées qui contiennent des documents ou du texte.

Rechercher des expressions clés dans les documents avec la recherche sémantique
Explique comment rechercher des expressions clés dans des documents ou des colonnes de texte configurés pour l'indexation sémantique statistique.

Rechercher des documents similaires ou connexes avec la recherche sémantique
Explique comment rechercher des valeurs textuelles ou des documents similaires ou connexes et donne des informations sur leur similitude, dans des colonnes configurées pour l'indexation sémantique statistique.

Gérer et surveiller la recherche sémantique
Décrit le processus d'indexation sémantique et les tâches associées à l'analyse et à la gestion des index.

Contenu associé

DDL, fonctions, procédures stockées et vues de recherche sémantique
Répertorie les instructions Transact-SQL et les objets de base de données SQL Server ajoutés ou modifiés pour prendre en charge la recherche sémantique statistique.