Recherche sémantique (SQL Server)

La recherche sémantique statistique donne un éclairage sur des documents non structurés stockés dans des bases de données SQL Server en extrayant et en indexant des expressions clés statistiquement pertinentes. 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.

Dans cette rubrique

  • À quoi sert une recherche sémantique ?

    • Rechercher des expressions clés dans un document

    • Rechercher des documents similaires ou connexes

    • Rechercher les expressions clés qui rendent les documents similaires

  • Stockage de documents dans SQL Server

  • Tâches associées

  • Contenu connexe

À 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 vont au-delà des recherches par 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

HAUT

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

HAUT

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

HAUT

Stockage de documents dans SQL Server

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

La fonctionnalité FileTable dans SQL Server 2012 fait des documents et des fichiers non structurés des éléments de premier ordre 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 pour stocker des documents dans la base de données, consultez FILESTREAM (SQL Server).

HAUT

Tâches associées

Contenu connexe